Added unit test for Plug::removeOutputs().
Allowed Plug to accept children.

It was always strange that Plug didn't accept children, but that CompoundPlug then reaccepted them - the rule is that a derived class can be more strict than a base class, but not less so.

Plug now also does all the parent/child connection management that CompoundPlug was doing, and can do so without signal/slot management because it is in direct control in the setInput() calls themselves.

The Plug class can now be used directly wherever a container of plugs is needed, whereas before it was only possible to use a CompoundPlug for this, whether or not the client actually wanted all the ValuePlug semantics associated with that.

Binary incompatibilities :

	- CompoundPlug
		- Removed methods
		- Removed member variable
Updated Plug serialisation to account for children.
Updated ValuePlug to deal with children.

ValuePlug should now be useable in place of CompoundPlug, and CompoundPlug will be removed entirely in a future version.

Binary incompatibilities :

	- CompoundPlug
		- Removed methods
	- ValuePlug
		- settable() no longer virtual
Added tests to check that leaf plugs do not accept children.
Added child matching to connected Plugs.

When a parent plug has an input connection from another parent plug, we now propagate any child addition/removal on the source plug, performing equivalent operations on the destination plug. This allows the connection to be maintained, and will allow compound plug types like CompoundDataPlug to be used effectively in connections.
Added CompoundDataPlug test case demonstrating Box promotion.

Fixes #1043.
Fixed include order in Plug.cpp.
Interleaved Prune hash/compute methods for clarity.

It's a lot easier to verify they're correct as a pair when you can see them side by side.
Interleaved Isolate hash/compute methods for clarity.

It's a lot easier to verify they're correct as a pair when you can see them side by side.
Fixed poor performance of Prune/Isolate in presence of SetFilter.

Due to an inaccurate hash, we were repeatedly computing the globals every time the SetFilter requested them. Not doing that is quicker.
Merge pull request #1061 from johnhaddon/globalsHashes

Fixed poor performance of Prune/Isolate in presence of SetFilter
Made object type more prominent in the SceneInspector.

As requested in #897. This also paves the way for summaries in other SceneInspector headers as per #911.
Improved object section in SceneInspector

- Added section for displaying camera parameters.
- Added section for displaying primitive variables with types, interpolation and geometric interpretation.
- Added field for mesh interpolation.

Fixes #897.
Merge pull request #1059 from johnhaddon/plugConnections

Plug improvements
Merge pull request #1062 from johnhaddon/sceneInspectorObject

SceneInspector object section improvements
Added outputCameras() function to RendererAlgo.h.

This allows all cameras, not just the primary camera, to be output to the renderer. Also added an overload for outputCamera() which outputs the camera from a specific location.
Made ExecutableRender output all cameras.

This allows secondary cameras to be used for stereo rendering, projections, dicing cameras etc.
Made InteractiveRender support multiple cameras.

Backwards incompatibility :

	- InteractiveRender "updateCamera" plug renamed to "updateCameras". I've done a search and can't find any reference to "updateCamera" in any IE code though.
Added support for per-camera resolution overrides.

These are specified with a "resolutionOverride" V2iData in the camera parameters. There's no way of generating such an override in Gaffer itself right now - this is just to support an internal Image Engine workflow for the moment.