Re-enable forced garbage collection

After 24MiB of allocations we'll enter the garbage collector on the next
allocation. If LLIBY_ALWAYS_GC is enabled then the GC is entered after
every allocation as before.
Don't explicitly initialize gcState

Make the AllocatedCell GC state have a value of zero and depend on the
fact that mmap() will give us zeroed memory. This speeds up large
allocations as the allocator doesn't need to pass through the memory
once just to have the same memory touched later when the type ID etc.
are set by the cell consumer.
Simpify AbstractRefRange

Remove support for the move constructor now that it's unused. This
allows us to skip a null pointer check in the destructor
Lazily allocate the cell ref range lists

Using the branch instruction we recovered from the last commit start
lazily allocating the cell ref range list. This is important as the weak
ref list is never used outside of unit tests so we can save a 4KiB
allocation for each world.