OpenGL/Buffer: make GLBuffer a template class

Turn "target" and "usage" from method parameters to template
arguments.
OpenGL/Buffer: move glBufferData() call to new method Data()
OpenGL/Buffer: add API documentation
OpenGL/Globals: include cleanup
OpenGL/Globals: add flag "mapbuffer"
OpenGL/Buffer: add methods MapWrite(), Unmap()
OpenGL/Buffer: add methods BeginWrite(), CommitWrite()
TopographyRenderer: delete the copy constructor

.. instead of deriving from NonCopyable.
TopographyRenderer: make the constructor "explicit"
Topography: use nullptr instead of NULL
OpenGL/Buffer: support for dynamic glMapBufferOES()
TopographyFileRenderer: use a vertex buffer object

Upload the vertices once into the GPU, and reuse the same VBO over and
over.  This saves some memory bandwidth by avoiding copies.
TopographyFileRenderer: move GL_BLEND out of the loop

Reduce the number of state changes.  This setting is file-global.