Make the small_id_table a bitset.
* object-internals.h (MonoInternalThread): Use
unused5 to hold the conservative root to the thread itself.
* threads.c: MonoInternalThread objects have the peculiarity
that they must be pinned since we hold its value on TLS.
To solve it we register the field thread_pinning_ref as
a conservative root, causing them to be pinned.
* hazard-pointer.c: The small id allocation code no longer
depends on MonoInternalThread, change small_id_table to be
a bitset instead of an array of pointers.