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.
Fixed GadgetWidget overlay event handling problems.

Clicking in the main part of the GadgetWidget wasn't taking focus back from the overlay, and typing in the GadgetWidget wasn't delivering events properly to overlays with the focus. We also weren't passing mouse move on to the overlay all the time, and since the overlay needs it to do proper enter/move/leave event handling, things like highlighting of hovered buttons were broken.
Removed unused gumph from MultiSelectionMenu.

The setText/getText methods are inherited from Button anyway.
Fixed crashes when MultiSelectionMenu was used in GLWidget overlay.

Using the tried and tested method from MenuButton.
Allowed Viewer toolbar to omit labels when Metadata value is "".

Also added a todo.
Improved Button appearance to work better in overlays.

The gradient is now much more subtle.
Added EnumPlugValueWidget.selectionMenu() method.

This returns the internal widget, along similar lines to NumericPlugValueWidget.numericWidget() and others.
Added icons for use in ImageView overlay.
Added toolbar UI for ImageView.