[sgen] Remove weak ref hashes.

These hashes were inefficiently duplicating the information in the
common GC handle data tables.
[sgen] Make GC lock recursive.

FIXME: Revert this when the GC handles table is made lock-free.
[sgen] Use GC lock for locking weak ref table.
[sgen] Deduplicate 'gc_handles' initializers.
[sgen] Refactor handle data manipulation.

Factor 'alloc_handle()' into smaller units, and introduce functions for
manipulating the bitmap, to avoid magic numbers.
[sgen] Update binary protocol for dislinks.
[sgen] Avoid redundant calls in 'mono_gchandle_iterate()'.
[sgen] Always use GC handles in refqueue.

The dislink machinery no longer exists.
[sgen] Use GC handles in monitors.

The dislink machinery no longer exists.