This is to ensure that we still render chunks when they contain tile
meshes which may be bigger then the 1x1x1 unit size and could then
potentially cause the chunk mesh bounds to be larger then the chunk
tile grid bounds.
Since TileMesh objects are not rendered directly, using a Mesh object
to store their vertices is a bit of a waste since on GL 2.0+ libgdx
uses a VBO for each Mesh
This is a _mostly_ working port of my original C++ code. Some parts
aren't too optimized yet and some stuff may actually not work. But it's
_mostly_ there. :)