RenderCommand / Renderer prepartion for automatic uniform bindings

RenderShader now has a hash of uniform and a hash of attributes both
containing  names and glsl binding positions.
Those are initialized when the ShaderProgram is created by the
QGraphicContext.
In order to initialize uniforms and attributes only once the shader has been
created, RenderCommand and Renderer have been slightly modified.

Change-Id: I85b8769195a81834f3919f18a9f53cbf5e032ddb
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Automatic uniform binding

If the shader contains a uniform with a standard uniform name,
it will automatically be set. If a custom name is used within a shader for a
standard uniform variable, the user can add a ParameterMapper with
parameterName set to the Qt3D standardUniform name and shaderVariableName to
the custom name.

For user specified uniform parameters, if the parameter name is the same as
the shader uniform name, the binding is done automatically. Otherwise, a
ParameterMapper can be used.

At the moment automatic binding for Attributes still has to be sorted out as
default attribute names are dependent on a given MeshData.

Change-Id: If244b26e5c2b01c8b319ba78c57fb1e131736dcb
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>