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.