Fix resource leak in ProgramFactory when something throws

Rename RotateAroundOriginCamera to ThirdPersonCamera
Add DerpGLC to integrate shader compilation into MSBuild and Visual Studio
Add support for the different framebuffer targets

Add normal matrix calculation
Add some TODOs
Rename FrameBuffer and RenderBuffer

Remove the captial B to match the OpenGL naming
Refactor GLObject and GLResource to swap roles

By making GLResource the base of GLObject, instead of the other way around, other types can derive from GLResource to inherit the dispose pattern even if they are not direct wrappers to a single GL handle.
This way all custom types which encapsulate GLObjects like BufferPod and all Shape related types can be handled as GLResource descendants which simplifies disposing them properly.