0.9.8.18:
Rearrange the GENCGC "struct page" a bit to for a more compact
memory representation. Saves memory (about 15MB on x86-64
where the page table is large, a couple of MB on x86). Also
a minor performance improvement thanks to cache issues.
TODO: The size could be still improved by another 15MB on x86-64
by defining the ill-named first_object_offset as an int
instead of long (4 bytes less data and 4 bytes less of padding).
The naive implementation would then limit the maximum region size
to 4GB. Since some low bits in the field are guaranteed to be
zero, a smart implementation could do some shifts and store even
more data. It remains to be seen whether this would be worthwhile.