Added an automatic __cameras set created by the Camera node.

This will be useful for providing drop-down menus for selecting cameras, and for outputting multiple named cameras to renderers that support them.
Implemented camera edits for IPR rendering.

Fixes #190.
Moved ScenePlugBinding implementation details to anonymous namespace.
Registered automatic from-python conversions for ScenePlug::ScenePath.

This replaces the need to manually wrap any functions taking a ScenePath, making the bindings simpler. The conversion from InternedStringVectorData is also superior to the former conversion because it doesn't allocate a copy - it simply references the data already present.

Removed objectToScenePath() because it is no longer needed.
Added exists() method to SceneAlgo.

This can be used to query whether or not a particular location exists within a scene.
Improved reporting of invalid cameras.

Fixes #371.
Stopped exceptions in InteractiveRenderer breaking edit blocks.

If we'd called editBegin(), and an exception was thrown before we called editEnd(), we'd never close the block. Using the new IECore::EditBlock makes sure this can never happen.

This requires ImageEngine/cortex#303 to be merged first.
Prevented IPR exceptions propagating to the UI.

Fixes #898.
Added unit test for InteractiveRenderManRender camera edits.
Merge pull request #885 from johnhaddon/cameraIPR

Camera IPR