JavaGL20.glBufferSubData should respect the provided size.
Use glBufferSubData instead of copying the entire buffer.

This substantially reduces the amount of redundant copies by
IndexedTrisShader. Especially for games with complex scenes, since as
the vertex/index buffers were expanded, that meant even more copying per
draw call.
JavaGL20.glUniform*v should copy as little as possible.