ShaderProgram class to manage shader loading/linking
Cache attrib locations in shaderprogram. Also fixed some formatting