Fixing the chunk meshing

This is not working correctly, but it is far better than it was.

What needs to be done (sort of in order):
* (DONE) Figure out why every block in a ChunkMesh is always fully occluded (toRender[] is completely all false). If these become true, then chunks will start rendering again.

 * I've figured out why this is. A block's occlusion means it's opaque, therefore rendered (as compared to transparent). The renderer was trying to do the opposite. (Why is this not wrong in master?)
 * Wait, I realized that it checks the NEIGHBOR'S occlusion. In that case, it should be working correctly.
 * UNGENERATED in BlockMaterial needs to be transparent. Did anyone test master with the fallback world?

* Fix the OutOfMemoryError. I'm pretty sure this isn't a memory leak, but instead just trying to add too many block vertices (ones not needed). I think toRender[] is supposed to take those out, but I don't see how.

 * With toRender[] working correctly, no longer is EVERY vertex being rendered. Therefore, there's no OOME, but there is VERY high memory usage.
 * I'm pretty sure the reason for this now is that when a new chunk is adding, neighboring chunks' meshes are updated, causing edge blocks to become occluded.

* (DONE) Change MeshGeneratorRunnable to be a single thread in SpoutScheduler that reads SpoutChunkSnapshotModels

* Change the MeshGeneratorThread from a single thread to a pool of threads to allow for concurrent mesh generation.

* Figure out why the client player is not getting teleported to the correct server location. I think this might be part of the problem. (but not likely)


http://imgur.com/DVSC7ql
http://imgur.com/M1ezPi5
Initiate the applause.

Signed-off-by: Jack Huey kitskub@gmail.com
@Afforess
@Zidane
@DDoS
SpoutAPI: https://github.com/SpoutDev/SpoutAPI/pull/568