[sgen] Always inline the optimized copy function.

This is a huge win for some benchmarks.
[sgen] Use MS_MARK_OBJECT_AND_ENQUEUE where we expanded it previously.

It's still the same code, so use the macro directly.
[sgen] Unify the two small object mark cases again.

The only difference between these two cases was that we used to
different heavy statistics counters.  We can do that within a single
case.
[sgen] Support split nursery again.

This might degrade performance, in which case we'll special-case it
later on.
[sgen] Support evacuation again.

The performance impact of this is significant, so we will later make
two separate scan functions: one with evacuation and one without.
[sgen] Move copy/mark function into separate header file.

So we can later include them twice, once with support for evacuation
and once without.
[sgen] Remove old copy/mark function.

The new, optimized function can now do everything the old one did, so
let's get rid of it.
[sgen] Move drain_gray_stack() to copy/mark header file, too.

This inlines the scan/copy functions, so if we duplicate them we need
to duplicate this, too.
[sgen] Support evacuation in the optimized mark/scan loop.

We actually implement two separate mark/scan loops: One that doesn't
support evacuation and one that does.  We dynamically choose which one
to use.  The evacuation-less loop is faster, so we use it whenever we can.
[sgen] Make new M&S parameters fastenable.

Fasten is a small tool for optimizing compile-time options:

    https://github.com/evincarofautumn/fasten

It does that by parsing source files for numbers that have been marked
as "fastenable", and fiddling around with them.  We do this for all
the new optimizations.
[sgen] Fix build with prefetch queue enabled.
[sgen] Remove dead code.

This was still left from the parallel collector.
[sgen] Increase debug level of assertions in inner loops.
[sgen] Handle copy object failure.

This is just a verbatim copy of the old code.  It's unlikely it's ever
been tested, though.
[sgen] Fix build on highest debug level.
[sgen] Remove binary protocol entry for null dequeue.
[sgen] In binary protocol grep, gray en-/dequeue must not always match.
[sgen] New protocol entry for processing of individual reference.
[sgen] Add some missing binary protocol invocations.
[sgen] Add/fix some assertions.