Added explicit support for procedural shaders. Removed the procedural shading functionality from the Rectangle class into a discrete class which can then be applied to rectangle objects.