Fixed Shader node bindings to use DependencyNodeClass.
Fixed texture shader to work with GLSL version 120.
Reverted non-gui ExecutableRender::execute() to block until the render is complete.

Not having this was preventing the test and screengrab apps working correctly.

Fixes #353.
Refactored Shader classes.

- Removed Shader::shader() and Shader::shaderHash() virtual methods, replacing them with Shader::parameterHash() and Shader::parameterValue() virtual methods. This simplifies the task of implementing derived classes.
- Made Shader::state() return a const value, making it possible to cache values in the future.
- Fixed hashing of RenderManShader coshader array parameters.

This refactoring should make it easier to implement the enabledPlug() and correspondingInput() stuff required by #327.
Implemented enabling/disabling for shader nodes.

By default disabled shaders behave as if their output connections didn't exist. RenderMan shaders may change this by defining a "primaryInput" annotation nam
ing an input coshader parameter - this will be used to make the disabled shader act as a pass-through.

Fixes #327.
Merge pull request #395 from johnhaddon/disabledShaders

Enabling/disabling for shader nodes