Lots of shader work.

BasicShader: Class deleted as it was no longer in use.
All forward shader classes: Finding and updating of uniforms moved to
main Shader class.
MappedValues: Float and Vector maps became so common I made a common
interface for them.
Material: Now has MappedValues as child, also properly handles textures.
Mesh: Uses a static Map of MeshData to make sure only one instance of
each mesh is loaded, also uses new IndexedModel class for loading.
MeshData: A class that stores the VBO, IBO, and Size for each Mesh.
OBJModel: Added profiling for conversion to IndexedModel.
RenderingEnigne: Removed unused methods. How also inherits MappedValues,
has a Map for textures to make sure they're bound to the right sampler.
ResourceLoader: Class removed and loading moved to the classes they
result in.
Shader: Now loads itself. Automatically detects uniforms and updates
them. Also supports the "#include" keyword.
Texture: Now loads itself. Added method for binding to a specific
sampler slot. Uses new TexureData class to make sure only one instace of
each texture is loaded.
TextureData: Stores the ID for each Texture.