[threads] clear small_id_key TLS when unregistering a thread (mono/mono#16973)
* [threads] clear small_id_key TLS when unregistering a thread
Fixes
```
* thread mono/mono#12, name = 'tid_a507', stop reason = EXC_BREAKPOINT (code=1, subcode=0x1be66144)
* frame mono/mono#0: 0x1be66144 libsystem_c.dylib`__abort + 184
frame mono/mono#1: 0x1be6608c libsystem_c.dylib`abort + 152
frame mono/mono#2: 0x003e1fa0 monotouchtest`log_callback(log_domain=0x00000000, log_level="error", message="* Assertion at ../../../../../mono/utils/hazard-pointer.c:158, condition `mono_bitset_test_fast (small_id_table, id)' not met\n", fatal=4, user_data=0x00000000) at runtime.m:1251:3
frame mono/mono#3: 0x003abf44 monotouchtest`monoeg_g_logv_nofree(log_domain=0x00000000, log_level=G_LOG_LEVEL_ERROR, format=<unavailable>, args=<unavailable>) at goutput.c:149:2 [opt]
frame mono/mono#4: 0x003abfb4 monotouchtest`monoeg_assertion_message(format=<unavailable>) at goutput.c:184:22 [opt]
frame mono/mono#5: 0x003904dc monotouchtest`mono_thread_small_id_free(id=<unavailable>) at hazard-pointer.c:0:2 [opt]
frame mono/mono#6: 0x003a0a74 monotouchtest`unregister_thread(arg=0x15c88400) at mono-threads.c:588:2 [opt]
frame mono/mono#7: 0x00336110 monotouchtest`mono_thread_detach_if_exiting at threads.c:1571:4 [opt]
frame mono/mono#8: 0x003e7a14 monotouchtest`::xamarin_release_trampoline(self=0x166452f0, sel="release") at trampolines.m:644:3
frame mono/mono#9: 0x001cdc40 monotouchtest`::-[__Xamarin_NSTimerActionDispatcher release](self=0x166452f0, _cmd="release") at registrar.m:83445:3
frame mono/mono#10: 0x1ce2ae68 Foundation`_timerRelease + 80
frame mono/mono#11: 0x1c31b56c CoreFoundation`CFRunLoopTimerInvalidate + 612
frame mono/mono#12: 0x1c31a554 CoreFoundation`__CFRunLoopTimerDeallocate + 32
frame mono/mono#13: 0x1c31dde4 CoreFoundation`_CFRelease + 220
frame mono/mono#14: 0x1c2be6e8 CoreFoundation`__CFArrayReleaseValues + 500
frame mono/mono#15: 0x1c2be4c4 CoreFoundation`CFArrayRemoveAllValues + 104
frame mono/mono#16: 0x1c31ff64 CoreFoundation`__CFSetApplyFunction_block_invoke + 24
frame mono/mono#17: 0x1c3b2e18 CoreFoundation`CFBasicHashApply + 116
frame mono/mono#18: 0x1c31ff10 CoreFoundation`CFSetApplyFunction + 160
frame mono/mono#19: 0x1c3152cc CoreFoundation`__CFRunLoopDeallocate + 204
frame mono/mono#20: 0x1c31dde4 CoreFoundation`_CFRelease + 220
frame mono/mono#21: 0x1c304a80 CoreFoundation`__CFTSDFinalize + 144
frame mono/mono#22: 0x1bfa324c libsystem_pthread.dylib`_pthread_tsd_cleanup + 644
frame mono/mono#23: 0x1bf9cc08 libsystem_pthread.dylib`_pthread_exit + 80
frame mono/mono#24: 0x1bf9af24 libsystem_pthread.dylib`pthread_exit + 36
frame mono/mono#25: 0x0039df84 monotouchtest`mono_threads_platform_exit(exit_code=<unavailable>) at mono-threads-posix.c:145:2 [opt]
frame mono/mono#26: 0x0033bb84 monotouchtest`start_wrapper(data=0x1609e1c0) at threads.c:1296:2 [opt]
frame mono/mono#27: 0x1bf9b914 libsystem_pthread.dylib`_pthread_body + 128
frame mono/mono#28: 0x1bf9b874 libsystem_pthread.dylib`_pthread_start + 44
frame mono/mono#29: 0x1bfa3b94 libsystem_pthread.dylib`thread_start + 4
```
* Update mono/utils/mono-threads.c
Co-Authored-By: Aleksey Kliger (λgeek) <akliger@gmail.com>
Commit migrated from https://github.com/mono/mono/commit/
749493d4b3a388b91bd454cc153000049b04b526