Made Shader destructor properly virtual and override
Rename GlObject get_handle() to handle()
Added ShaderProgram class encapsulating OpenGL shader program objects.
All methods requiring an object to be bound have not been implemented yet.