Refactor/Rewrite of DeferredRenderer

Refactor/Rewrite of DeferredRenderer

The actual data being rendered is now independant of the DeferredRenderer class,
and is handled through "Scenes", which use the SceneI.h interface.

The scenes are in turn comprised of objects, an manages the camera, etc.

The objects use the RenderableI.h interface, and provide Model Transform, Decal
and Mesh data.

Lastly, all render() functions are made const, separating the non-const parts into
refresh() functions. This allows the DeferredRenderer to know of the Scene,
but not be allowed to modify it, while the scene is updated through the main manager.

In time, the rendering class will not need to be updated, as it will just render
the state as it is, rather than try to also do work of updating the scene.

------------------------------------------------------------
Description of individual changes:
------------------------------------------------------------
Cleanup and usage of DeferredRenderer in conjuction with SceneBasic
    src/core/MainManager.cpp
    src/core/MainManager.h

The new more general DeferredRenderer
    src/ui/DeferredRenderer.cpp  (+)
    src/ui/DeferredRenderer.h    (+)

The old class is still preserved, but will be removed soon.
    src/wip/DeferredRenderer.cpp -> src/ui/DeferredRendererOld.cpp
    src/wip/DeferredRenderer.h   -> src/ui/DeferredRendererOld.h

Minor logging functionality
    src/ui/GlState.cpp
    src/ui/GlState.h

Smaller changes for making render() const
    src/ui/BasicRender.h
    src/ui/DeferredQuadRender.cpp
    src/ui/DeferredQuadRender.h
    src/ui/GlTexture.cpp
    src/ui/GlTexture.h
    src/ui/ImageRender.cpp
    src/ui/ImageRender.h
    src/ui/MeshRender.cpp
    src/ui/MeshRender.h
    src/ui/TextBoxTextRender.cpp
    src/ui/TextBoxTextRender.h
    src/ui/TexturedQuadRender.cpp
    src/ui/TexturedQuadRender.h
    src/ui/VoidRenderer.cpp
    src/ui/VoidRenderer.h

New interaces, plus minimal implementation of Scene and Renderable objects
    src/ui/Renderable.h          (+)
    src/ui/RenderableBasic.cpp   (+)
    src/ui/RenderableBasic.h     (+)
    src/ui/RenderableI.h         (+)
    src/ui/RenderableInterface.h (+)
    src/ui/SceneBasic.cpp        (+)
    src/ui/SceneBasic.h          (+)
    src/ui/SceneI.h              (+)
    src/ui/SceneInterface.h      (+)

Added repeatFactorHint as a surface property
    src/ui/Surface.cpp
    src/ui/Surface.h

Old deprecated rendering stuff moved to attic.
    src/wip/CubeInstanced.cpp         (-)
    src/wip/CubeInstanced.h           (-)
    src/wip/InstancedCubeRenderer.cpp (-)
    src/wip/InstancedCubeRenderer.h   (-)
    src/wip/ObjRenderer.cpp           (-)
    src/wip/ObjRenderer.h             (-)
    src/wip/ToTextureRenderer.cpp     (-)
    src/wip/ToTextureRenderer.h       (-)