Pass a dummy world pointer to _lliby_alloc_cells

This is currently unused but it should represent the final changes to
the compiler required for world pointer support.

The code is a bit messy because the world pointer isn't actually used
until PlanCellAllocations which is the very last step of planning.
InferArgumentTypes and DisposeValues need to special case the world
pointer as to not optimize it out.
Make allocateRange take a dummy world pointer

This has very little fallout - most of the functions allocating ranges
also needed to GC root.
Pass the world pointer to the allocator

This is currently unused but prepares for moving the allocator state in
to the world.
Remove World::activeWorld()

This makes forceCollection() take a world pointer and pass that in to
the collector. The GC root list is then taken from the world but the
allocation area is still a global variable.
Split alloc::init in to initGlobal/initWorld

initGlobal will start the finalizer thread while initWorld/shutdownWorld
will create the allocator state for a specific world
Move the active memory block to World

This doesn't change any functionality yet
Move allocNext/allocEnd to World

This finally makes the runtime state contained to the World and allows
independent GC areas to co-exist
Don't treat non-world functions as GC barriers

It's not possible to allocate memory without access to a world pointer.
This allows us to avoid synchronizing our GC state across read-only
runtime functions.