Some improvements; OpenGL 3.2 Core profile support.

API is starting to get muddy, but it's meant to be sort of low-level
so that the user can maintain control over performance characteristics.
Still, it feels like the API could be much cleaner, in particular around
the types Shader, Geometry, GeometryLayout, etc.