Removed outdated comment from IECoreRI Camera test.
Added explicit tracking of worldBegin/worldEnd blocks in IECoreRI.

This will be necessary to allow us to properly handle multiple cameras and moving cameras. It also allows us to validate calls made to worldBegin() and worldEnd().
Removed support for hider parameters in IECoreRI::Renderer::camera().

Equivalent functionality has been available via setOption() for a good while.
Removed "transform" parameter from IECoreRI::Renderer::camera().

This has been deprecated for a long while, and was only introduced to work around a bug which was fixed long ago.
Added private TransformStack class to IECoreRI.

This keeps track of a stack of M44f matrices, optionally with multiple time samples at each level of the stack. It will be used initially in the IECoreRI::RendererImplementation to track transforms before worldBegin(), where the renderman and cortex transforms differ. It may also have uses for emulating a transform stack complete with motion blur support in the IECoreArnold::Renderer class, but until that day I think it's best that it remains private - we have enough bloat as it is.
Added support for multiple cameras to IECoreRI::Renderer.

Each camera is marked with a call to RiCamera(). This meant keeping a track of transforms prior to worldBegin() ourselves, which will pave the way to implementing motion blur for cameras too.

Since we no longer need to defer camera output to worldBegin(), this also means that the hacky "ri:outputNow" parameter to the camera() method is no longer needed, so it has been removed.
Added support for motion blurred cameras to IECoreRI::Renderer.
Added support for camera edits to IECoreRI::Renderer.
Moved RefCountedBinding implementation details into Detail namespace.
Removed unused member from IECorePython::WrapperGarbageCollector.
Simplified RefCounted bindings.

When a wrapper is desired, the wrapper type is now passed directly, instead of having to specify IntrusivePtr<Wrapper>. This very slightly simplifies the wrapping of classes, but more importantly gives RefCountedClass full control of the sort of pointer used for wrapping.
Made RefCounted bindings release the GIL during C++ destruction.

Fixes ImageEngine/gaffer#855.
Added support for the Ogawa backend into IECoreAlembic.

The availability of the backend is checked in the SConstruct (it's only available for Alembic 1.5 and above), and we fall back to the old code path if its not available.
Changed DespatchedTypedData DataPtr & argument to Data *.

We should only be passing DataPtr & to signify a sharing or ownership, which is not generally the case with DespatchTypedData. This avoids the unnecessary creation and destruction of smart pointers, which in turn make unnecessary addRef() and removeRef() calls, which do have an overhead.

Also replaced some implicit conversions of Ptr to * with explicit calls to Ptr.get(), in preparation for a move to boost::intrusive_ptr.
Merge pull request #294 from johnhaddon/despatchTypedDataPointerType

Changed DespatchedTypedData DataPtr & argument to Data *.
Merge pull request #299 from johnhaddon/gilReleasePtr

Release GIL during C++ object destruction
Merge pull request #300 from johnhaddon/ogawa

Added support for the Ogawa backend into IECoreAlembic.
Merge pull request #296 from johnhaddon/riCamera

IECoreRI::Renderer camera improvements
MayaScene bindings now catch boost python exceptions

I ran into a case where some custom attribute readers were erroring in caribou and crashing maya. Turns out this is because they were raising a boost::python::error_already_set, which wasn't getting caught by anything, and triggered another uncaught exception. I've now put try/catch blocks in the CustomTagReader and CustomAttributeReader to avoid this situation in the future.
Avoiding use of deprecated operator[]

The headers indicate using operator() instead which make sense from the source code as we are doing read-access and there's no need to expand the array if indices are greater than the current size.