ShaderProgram updates

The Fog component has been removed in preference of the ShaderProgram
component, which allows developers to specify their own fog shaders (if
any) and use the exiting uniforms property to define any necessary
values required.

This commit also removes redundant code from uniform value declaration
in the render() method.