initial test of render optimization, just reordering by shape-dependence
factored rendering into use() and renderShape()
fixed refactoring bug
refactoring glGet*Location() calls into constructor, since the values cannot change after link
works with VBO for just vertices
now using VBOs for all shapes (no appreciable perf improvement)
fiddle with FOV