TMeshCache<x,y,z>::MeshDataType should be protected, not private
OpenGL::MeshCache now properly chooses between element array buffers (indicies) and array buffers (everything else) depending on the type of data being stored.

also coding standards (I demand proper whitespace!)
Add out_count parameter to GPU-side data cache requests and make existing functions fill the has_xxx parameter in all cases