[sgen] Remove SGen fixed heap configuration.

It's not well-tested, not widely used, we can surpass its speed with
upcoming improvements and we won't put those into the fixed
configuration because it's too much of a diversion.
[sgen] Remove parallel collector.

This was almost completely untested and performance was
erratic.
[sgen] Implement get_and_reset_num_major_objects_marked() for non-conc, too.

This is used for profiling and debugging.  There's no reason to only
have it for concurrent.
[sgen] Abstract block info->block via macro.

If we want to experiment with putting the block info into the block this
makes it easy.
[sgen] Remove obsolete check in #ifdef.

That macro doesn't exist anymore.
[sgen] GrayQueueEntry struct instead of just char*.

This makes it easier to later enqueue the GC descriptor with the
object.
[sgen] Pass descriptor, not vtable, to OBJ_COMPLEX_ARR_FOREACH_PTR.

Later on, when we enqueue objects with their GC descriptors, we won't
load the vtable before scanning (because we'll already have the
descriptor), so the scanning macros shouldn't take them as arguments.
[sgen] Enqueue objects with their descriptors.

At the point where we enqueue objects we have already fetched their
descriptors, and when we later scan them (after dequeuing) we need the
descriptor again, so we avoid cache misses by enqueuing them together.
[sgen] Free gray queue sections after GC, not at start of next.

We trim the free list of the gray queue to a maximum number of
sections, but we did it at each collection start, so the extraneous
sections were kept around between collections.
[sgen] Simplify sgen_drain_gray_stack().

This seems to have accumulated code duplication by accident.
[sgen] Added some comments.
[sgen] do-while loop instead of 1-unrolled while loop in bitmap scan.
[sgen] Heavy statistics counters for scanned object descriptors.
[sgen] Scoping fix in a macro.
[sgen] Move HEAVY_STAT macro to sgen-conf.h.

That's where we define HEAVY_STATISTICS, too.
[sgen] Move GRAY_OBJECT_ENQUEUE/DEQUEUE to sgen-gray.h.
[sgen] Keep allocated blocks in array instead of linked list.

We were spending a lot of time in major_iterate_live_block_ranges() on
the lcscbench benchmark, mainly from following the linked block list.
This change makes it much faster.
[sgen] Don't unroll run-length scanning loop.
[sgen] Move SGen statistics out of gc-internal.h.

This introduced a dependency from sgen-conf.h to a lot of compilation units
in metadata, leading to long build times when experimenting with SGen.
[sgen] Shift, don't divide, just to make sure.