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.