A first stab at making chunks into cubes.
blah
Fix for FOR_BOX loops which didn't traverse the entire desired space.
Prevent crash on exit by flushing the active region's queue first.
Replace -neighborVoxelAtPoint: with more straight-forward code
Fix bug which caused holes to appear in the terrain at chunk boundaries.

GSNeighborhood is now immutable.
Fix bug where grass would not generate properly at the top of chunks.
Fix replacement rules algorithm so it works for cube shaped chunks too.
Initial terrain generation does not block the main thread anymore.

BUG: terrain flickers badly because the VBO producer only uses try locks.
Fix the flickering terrain.
Fix rare crash which occurred when assertion was tripped during shutdown.

The internal queue in GSGrid should be flushed on shutdown.
Update VBOs every so often when the camera is not moving.

This allows us to pick up changes to terrain as the world loads.
The active region requests vbos in order of distance from the camera.

Also, the active region updates every frame to pick up terrain changes
quickly.
Change chunk size form 16x16x16 cube to 15x64x16.

There's a cost associated to having a large number of smaller chunks. Find
a nice middle ground chunk size that balances terrain generation time with
VBO size. This may need additional tweaking once I add occlusion culling.
Compress voxel data, sunlight, and geometry for fast loading.

The terrain cache on-disk for a world of size 128 is 13MB, down from 100MB.

Also, in doing so, removed dispatch I/O stuff.