gl_shader cleans things up a lot
split out buffer objects into multiple files
rename Shader::use() to Shaders::at()
shaders returns underlying map to iterate over