Refactored View constructors.

Previously it was quite confusing - the inputPlug argument to the View constructor was a plug to be added to the View to receive the input, and the inputPlug arguments to the derived class constructors was a plug to be connected in to that plug. Simplified things so that making the connection is an explicit step after constructing a View, and clarified the meaning of the View::View() argument.
Improved View factory mechanism, and bound views for derivation in python.

Views may now be registered by plug name and node type rather than just by plug type. Views may now be implemented in python in a limited way - we're deliberately not allowing any virtual functions to be overridden just yet as we're not sure we can consider the API as frozen. Python views are basically limited to just installing a preprocessor of some sort.
Improved ImageView to allow subclassing.

Subclasses may specify an input plug type which is not an ImagePlug, on the condition that they install a preprocessor that turns the input into an image. Added python bindings so subclasses can be made in python too.

Fixes #323.
Merge pull request #339 from johnhaddon/pythonView

Python bindings for Views