Added TargetLock, a class for tracking bound Gl objects
Created base of target binding system and start of BoundShaderProgram class
Removed accidental .swp files
Removed extra gl::
Merge branch 'gl_shader_program_binding_impl'