Added fallbackPosition argument to GraphLayout::positionNode().

This simplifies the logic a little for people using it, but mostly this is in preparation for modifying it to work for many nodes at once, in which case it would have been very inconvenient for the client code to do the fallback positioning themselves.
Added support for nested plugs in StandardGraphLayout::connectNode().

Practically speaking, this means that newly created shader nodes can now be automatically connected to the nodes which were selected at the time of creation.
Added Widget.mousePosition() method.

This returns the current position of the mouse pointer, optionally transformed into the local space of a particular Widget.
Added auto-connecting and auto-positioning for pasted nodes.

This makes use of two new methods on GraphLayout - connectNodes() and positionNodes().
Found a bug  bug with the way the parameters to the tbb blocked_range2d we are being set.
Added basic UI elements for GafferImage.
Added subdivision attributes to ArnoldAttributes node.
Changed the getChild() calls within the plug accessors within GafferImage::ImagePlug to use indices rather than strings.
Moved the tileOrigin() methon into the header file of ImagePlug.
Added a basic framework for the ImageTransform node.
Basic working version of ImageTranform.
Renamed Assignment to ShaderAssignment.

Fixes #203.
Removed dead code.
Changed the Transform2DPlug so that the matrix() method now takes a Format so that it can convert the result from Image space to Gadget space.
Slightly improved the appearance of MultiSelectionMenu dropdown arrow.
Added file import/export.
Added first implementation of the Reference node.

This is basically functional, except for the fact that reloading doesn't work at all - it just keeps stacking up copies of the internal nodes.
Fixed reload in Reference nodes.

Nodes and plugs no longer accumulate copies when a reference is loaded again. We attempt to reuse old external plugs where possible (when they correspond to the newly loaded external plugs) so that the outside of the node changes as little as possible from an observers point of view.
Added failing test.
Fixed unwanted deletion of custom plugs on Reference nodes.

Previously plugs that were unrelated to the reference were being deleted when a reference was reloaded. This would include plugs added by the ui for keeping track of node position etc. Now plugs are only removed if they are considered part of the reference - if they have connections to the nodes within the reference.
Fixed save/load of scripts containing Reference nodes.

Previously, the Reference node was allowing its referenced plugs to be serialised into the main script as well, causing them to double up on reload. It now marks them all as non-dynamic after loading to prevent this behaviour.

Also modified the serialisation for Node so that child nodes of nodes are not serialised - this is the behaviour we need for the Reference but I think it holds that most Node-derived types wouldn't want their child nodes serialising - typically they would be created on construction to perform some preprocessing of inputs and wouldn't be created by the user. The exceptions to this rule are the ScriptNode and Box, whose serialisers have been updated to ensure that their child nodes are still serialised.