Added ShaderComponent

Also fixed transform and shader components within the Actor class.
Removed some of the basic interfaces in favour of strong typing for the
basic drawable and updatable components.
Components now update through the OnUpdate method (same for draw), the
enable/disable functionality being handled in the base PComponent class.