Hid Shader enabled plug in the UI.

Fixes #398.
Added a new test for SplinePlug.

I wrote this while hunting down a problem that turned out to be unrelated, but you can never have too many tests...
Added spline parameter support to RenderManShader::loadShader().

Splines are represented as a pair of shader parameters called <name>Positions and <name>Values, and which are mapped to a single SplinePlug called <name>. UI to follow.
Reintroduced SplinePlugValueWidget and SplineWidget.

SplineWidget now uses the appropriate colour transform for the display, and gets the curve the right way up (Qt origin is top left). SplinePlugValueWidget uses ramp drawing mode for colour splines.
Fixed RenderManShaderUI to take into account spline parameter name munging.
SplinePlug fixes.

A medley of fixes relating to the SplinePlug :

- Implemented SplinePlug::createCounterpart()
- Made CompoundPlugSerialiser public so it can be used by derived classes
- Fixed SplinePlug serialisation.
- Removed redundant setValue() calls in ValuePlug serialisation - values are now set only on the leaf plugs. Fixes #2.

Among other things this now allows SplinePlugs to be happily saved and loaded, cut and pasted, and promoted to Boxes.