Set Grade node's gamma plug minimum value to 0.

Also defined a GradePtr typedef.
Added const version of GafferUI::View::getPreprocessor.
Added exposure and gamma controls to the image viewer.

This is achieved by setting a preprocessor containing a grade node with appropriate settings. This does mean that any subclasses which were formerly calling setPreprocessor() to perform a conversion will have to be modified to take advantage of the new behaviour - see ImageViewTest.testDeriving for an example.

The viewer has an outstanding bug (which already had a todo) whereby the sampled colour at the mouse x,y coordinates includes the additional transforms, whereas it should not. I haven't addressed this here, but instead have added todo items describing the approach I think we should take.

Fixes #571.
Added colourspace management to the image viewer.

The ImageView class allows arbitrary ImageProcessors to be registered as colour transforms, and chosen using a new "displayTransform" plug. The ocio.py config file registers a processor for each display transform in the OpenColorIO config, and a Default transform which tracks the global display transform specified via the preferences.

Fixes #573.