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 #717 from johnhaddon/parent

GafferScene.Parent node