Make IdAllocators more generic
use IdAllocator for texture units, remove load_terrain_textures()
simplify make_terrain slightly
change Texture.id to Texture.gl_id
stop GLByteBuffer from checking pointer alignment
tiny error message change
add an OpenGL BufferTexture struct
use buffer textures to provide shader data; lighting works again