Fixed threading issue in GafferImage::Display node.

Access to the tiles in the display driver is now protected by a mutex.
Improved StandardGraphLayout node auto-positioning.

It used assume that the tangent at each end of a connection were opposing - basically assuming that all connections were either horizontal or vertical. By using both endpoint tangents we can now cope with vertical->horizontal and horizontal->vertical connections.
Moved scene node filter plugs to the right hand side of the node.

This makes for tidier graphs.
Refactored BranchCreators to avoid unnecessary hashing overhead.

There were various circumstances where we were calling the base class hash methods only to reassign to the hash rather than append to it. By moving the responsibility of calling the base class from BranchCreator to its subclasses, we can avoid that overhead. The only results in a very mild (a few percent) speedup in my test case, but it also brings the branch hashing logic in line with that used elsewhere, which hopefully helps make everything a little more understandable.
Used InternedString( int ) constructor in Instancer.

This avoids a lexical_cast<> in the case that the appropriate string as already been constructed elsewhere.
Removed BranchCreator "name" plug.

It should be entirely up to the derived classes what the created branch looks like, and it should be possible to have multiple root entries in the branch - this is to facilitate the creation of a Parent node. Instancer and Seeds nodes still have a "name" plug, but are now responsible for using it themselves.
Fixed BranchCreator to preserve existing sibling branches.

Before, any existing branches below the parent were destroyed and replaced by the new branch - now they are kept and the new branch is renamed to avoid clashes if necessary. Also added a \todo with some thoughts about how we might be able to generalise this mechanism in the future.
Fixed BranchCreator bound computation at parent location.

It was failing to take into account the bound at the parent itself.
Fixed Seeds node for name=="" case.

Prior to this it was creating a location with an empty name. Also added a test checking that the Instancer doesn't have a similar problem.
Added a Parent node to GafferScene module.

This allows one hierarchy to be parented into another.

Fixes #91.
Fixed BranchCreator parent=="" case.

This now passes through the input perfectly, hashes intact. Prior to this, it was treated the same as the parent=="/" case.
Improved BranchCreator pass-through behaviour.

When there are no children on the branch, the output hashes now perfectly match the input hashes, reducing cache usage and computation.
Fixed mapping hash bug in BranchCreator.

Since the parent path is actually returned in the mapping (in the __BranchCreatorParent field), it's really rather essential that it is also represented in the hash.
Merge pull request #716 from johnhaddon/filterPlugPosition

Filter plug position
Merge pull request #714 from johnhaddon/displayThreading

Fixed threading issue in GafferImage::Display node.
Updated Changes and version for 0.88.1
Merge pull request #717 from johnhaddon/parent

GafferScene.Parent node
Updated Changes file.
Fixed Box::canPromotePlug( readOnlyPlug ) to return false.

Read only plugs cannot receive input connections, so trying to promote one is destined to fail.
Fixed Box::canPromotePlug() to check child plugs too.

The plug in question might appear promotable by itself, but a child could still be read only, or not accept inputs.