Added type-safety to Asset management

Added type-safety to Asset management
    assets/images/uv_browngrid.png (+)
    src/core/MainManager.cpp
    src/ui/DeferredQuadRender.cpp
    src/ui/ImageRender.cpp
    src/ui/MeshRender.cpp
    src/ui/MeshRender.h
    src/ui/ObjMesh.cpp
    src/ui/ObjMesh.h
    src/ui/ShaderProgram.cpp
    src/ui/ShaderProgram.h
    src/ui/Surface.cpp
    src/ui/Surface.h
    src/ui/TextBoxTextRender.cpp
    src/ui/TextBoxTextRender.h
    src/ui/TexturedQuadRender.cpp
    src/ui/TexturedQuadRender.h
    src/util/Asset.cpp
    src/util/Asset.h
    src/util/TestAsset.h           (+)
    src/wip/CubeInstanced.cpp
    src/wip/DeferredRenderer.cpp
    src/wip/ObjRenderer.cpp
    src/wip/ToTextureRenderer.cpp
Added OpenGL version fallback on creating context

Added OpenGL version fallback on creating context
    src/ui/GraphicsManager.cpp