Material adds its shader to the material manager

|SOURCE|
[Common/MD5]
* Added an operator< function for the std::map when sorting
[Common/Material]
* When a material is loaded, the shader is added to the material manager and
  the MD5 digest is created
[Common/Shader]
* Link is a public member function, as there are time-critical public member
  functions which cannot keep calling Link to re-link the object files
[Common/MaterialManager]
* CreateMaterial calls the local Material's CreateFromFile member function to
  create a new material, this is not yet added to the map of MD5 digests to
  materials