Made the first parameter name mandatory in several Mat4 functions
Added Shader methods that take in an optional closure for binding attribute locations
Made it easier to extend the types of values that can be bound to a VAO