Object management in Graphics system, rewrote shader class.

The graphics system now maintains a map full of all graphics related
objects, requiring a base class for graphics objects. Graphics objects
get a section in the json file.
Shader class is rewritten to work more independantly and support more
features used by shader programs.