New Material class added to the project.

This class is responsible for modeling the material properties of a
surface, taking care of its specular, diffuse, ambient and shininess
characteristics.
Added new MaterialFactory class to the project.

This class is responsible for providing Material instances to
GraphicsItem's. As there's no need to have multiple instances of the
same Material, this class takes control of instance's singularity.