Added a CoordinateSystem node to GafferScene.
Implemented drawing of coordinate systems in the viewport.

Unfortunately this continues the abuse of the SceneProcedural, but that is inevitable until we have a more sophisticated viewer.
Added coordinate system output functions to RendererAlgo.h.
Added coordinate system support to ExecutableRender.
Added coordinate system support to InteractiveRender.

This is just preliminary support and doesn't have unit tests yet. Currently it only works if the Renderer::coordinateSystem() call in IECoreRI::Renderer is modified to use RiCoordinateSystem() instead of RiScopedCoordinateSystem().
Fixed GafferTest.TextWriter so the mode can be serialized.
LocalDispatcher foreground tasks use ExecutableNode::execute() directly.

Previously it was using the gaffer execute app, which had a significant startup time, and prevented asynchronous task execution.

Also re-wrote LocalDispatcherTest using TextWriter in append mode, since the modification times aren't a good metric now that we're mixing foreground and background execution.
Added unit tests for moving coordinate systems during IPR.

This requires 3delight 11.0.96 to pass successfully.
Added history tracebacks to the SceneInspector.

These are available from the right click context menu for any value displayed in the the SceneInspector.

Fixes #834.
Added ViewportGadget raster<->world space conversion methods.
Simplified GafferUI::View bindings using IECorePython::CastToIntrusivePtr.
Added Handle::dragOffset() method.

This can be called from a dragMove() slot to obtain the current offset in the direction of the handle.
Merge pull request #946 from johnhaddon/coordinateSystems

Coordinate systems
Re-designed dispatching using a graph of TaskBatches.

A Dispatcher::TaskBatch describes its node, context, frames, and required TaskBatches. doDispatch() is now given a top level dummy TaskBatch containing graph of TaskBatches. Each dispatcher must ensure that the required batches are executed in the correct order, and must be aware that an individual TaskBatch may appear several times in the graph due ot interleaving requirements.
LocalDispatcher allows each ExecutableNode to force foreground dispatching.

Each ExecutableNode has an executeInForeground plug in the Local section of the Dispatcher plugs. This is used by the LocalDispatcher to determine when it's safe to start dispatching from a background thread (if the executeInBackground plug is on in the first place).

Fixes #927.
Removed hack to force background renders.
Merge pull request #950 from johnhaddon/handleDragOffset

Bits and bobs of progress towards manipulators
Changed shutdown warnings to debug messages.
Merge pull request #949 from johnhaddon/sceneInspectorHistory

Added history tracebacks to the SceneInspector.
Reorganizing TaskBatch and Task constructors