Adding user defaults to plug popup menus when applicable.
Added hasUserDefault( plug ) and applyUserDefault( plug ) to NodeAlgo.

Using these functions in the popup menu.
Merge pull request #1094 from andrewkaufman/userDefault

Adding user defaults to plug popup menus when applicable.
Simplified numeric plug bindings.

Rather than duplicate the code for repr(), we can just implement it in the ValuePlug bindings.
Added min/max values to BoxPlug.
Added min/max limits to StandardOptions crop window plug.

This is quite important, because out of range values upset 3delight.
Added handy CompoundDataPlug::MemberPlug child accessors.
Added GafferBindings::NodeClass() overload for suppressing init.

Not all nodes have a constructor taking a name, so we need to be able to optionally define the constructors manually.
Moved shutter() and transform() from RendererAlgo.h to SceneAlgo.h.

This is binary compatible, but source incompatible.
Added camera() methods to SceneAlgo.h.

These return cameras from the scene with all globals such as with all globals settings such as crop, resolution, overscan etc applied. Updated RendererAlgo to use these methods rather than duplicate logic.
Removed GLWidget minimum size.
Fixed bug where ViewportGadget::setCamera() could forget viewport size.
Fixed ViewportGadget::RasterScope to work during selection.
Added ViewportGadget::preRenderSignal().

This will help in implementing custom tools and viewers, many of which will want to lazily update viewport contents just prior to viewport rendering.
Made View::update() non-pure virtual.

We want to phase it out over time, and making it optional for derived classes to implement it is necessary as part of that process.
Added View::contextChangedSignal().
Added some tool icons.
Added Tool base class.

This will be used to help implement interactive tools inside the Viewer.
Added GafferSceneUI::SelectionTool.

This is refactored out of SceneView into the new Tool framework.
Added resolution gate overlay to SceneView.

Fixes #1016.