weak-table consolidation around scm_i_register_weak_gc_callback
* libguile/weak-table.c (GC_move_disappearing_link)
(move_disappearing_links): Factor out stub, as in previous weak-set
commit.
(resize_table): As in weak-set commit, finalizers do not run within
allocators.
(do_vacuum_weak_table): Add comment about need for trylock.
(scm_c_make_weak_table): Use the new scm_i_register_weak_gc_callback.
Previously this was the case because of a mistyped check for a
"HAVE_GC_TABLE_START_CALLBACK" symbol, whereas the symbol was actually
HAVE_GC_SET_START_CALLBACK. Anyway, it's better to call this after GC
anyway, as vacuuming might need to allocate weak links (on pre-7.3
libgc without GC_move_disappearing_link) or reallocate the backing
vector.