Context as singleton

+context accessible from GL::UseContext()
+model matrix operations
+use sizeof(glm::vec3) instead of 3 * sizeof(float)
+classes instead of #include wherever possible