Added TargetBindError exception, thrown when binding to already bound GL targets
Throw TargetBindError in GlContext::bind_shader_program