Fix the iteraction between bridge and major evacuation on a minor overflow major collection.
* sgen-gc.c: The bridge code is split into 3 steps, one done when we collect finalizable objects,
one done before we restart the world and the last right after.
The first step can be executed twice if an overflow major collection happens. We handled this
situation by avoiding duplicates in the registration code.
This works fine except if a registered bridge object is moved by the second collection, which can
happen when defragmentation kicks in.
Instead of fixing those pointers, which is quite tricky, we move hash building to happen in the second
step and discard all elements on the registered bridge array before each collection. Since all bridges
collected by the first collection will be collected again on the second, we can do it.