Fixed various Shader and Material class programming errors

|SOURCE|
[Common/Game]
* Added a MaterialManager which loads the test material
[Common/Material]
* CreateFromFile prints detailed error messages before returning a fail code
* Fixed one incorrect typing mistake with ShaderRoot and ShaderSourceRoot
* Added a check for ShaderSourceRoot being an array, as this is the only
  accepted type
[Common/MaterialManager]
* CreateMaterial returns detailed error messages when returning a fail code
[Common/Shader]
* Temporarily added debug information to ExtractUniformNames
* Changed the string's find_first_of to find, as find_first of gets the first
  character, which was very stupid of me
* Changed the while loop to keep going until the uniform position is found
* When storing the uniform name, the length of the name is no longer
  incremented by one (as this goes one past the length when it was subtracted
  before being added back)
* Currently, uniforms on a single line may be processed, multiple uniform
  names on one line or those with an array are not currently supported