Benchmark: 7 million cubes (3*3*3 * 64*64*64 cubes) of which 218,888 is actually uploaded, 250FPS with 1 light, 85FPS wih 100 lights.

Couple improvements: Chunk.Block now holds reference to each of 6 blocks touching each face, which simplifies and speeds up isSurrounded() call; found a bug in ChunkManager.cubePosToArrayIndex where if an axis was negative, the other axes could still add to the array index enough for it to be valid, now returns -1 when any axis is out of bounds; now rendering with 1 VAO and 1 VBO for all chunk data, instead of 1 each per chunk;  total of 1 draw call: glMultiDrawElementsIndirect, instead of glDrawElementsInstanced per chunk; incorporated usage of Stopwatch.