Make sense of render thread #1

What is now called GLResource should live only on the render thread. Instead of
the main thread creating GLResources and queueing them for build/destruct on the
render thread, the Renderer should generate RenderResources and return handles
to these.

This initial commit introduces the RenderResource and RenderResourceManager
which are both intended to replace / be merged with the GLResource and
GLResourceManager once all GLResources have been transformed to RenderResources.

Currently only textures and frame buffers are made into RenderResources.
Make sense of render thread #2

Convert MeshGLResource to MeshRenderResource.
Make sense of render thread #3

Convert ShaderGLResource to ShaderRenderResource.
Make sense of render thread #4

Convert ShaderProgramGLResource to ShaderProgramRenderResource.
Make sense of render thread #5

Replace RenderTargetClient with setters on the Renderer.

(Registering callbacks across thread boundaries? Who raised you...)
Make sense of render thread #6

Combine GLResource(Manager)/RenderResource(Manager).

All GLResources have been converted to RenderResources and the GLResourceManager
is no longer needed in its previous form. The RenderResourceManager now has
exclusive ownership of RenderResources.
Make sense of render thread #7

Avoid shared data by having SetProjection rather than GetProjection on Renderer.
Make sense of render thread #8

Clean up mess and make use of fancy C++11 features to shorten code.