Checking if we need to convert st and extraST before doing it.
PointSmoothSkinningOp handles faceVarying normals and added refIndices parameter.
Added an EditBlock class for exception-safe rerendering edits.
Merge pull request #303 from johnhaddon/editBlock

Added an EditBlock class for exception-safe rerendering edits.
Adding hash() function to SceneInterface.

Added implementation to SceneCache and LinkedScene with a naive approach, more so that we update the interface first.
HoudiniScene and MayaScene currently throw exceptions.
fixed camera motion block rib bug
Replaced IECore::IntrusivePtr with boost::intrusive_ptr.

IntrusivePtr had an implicit conversion to raw pointer which was good for the lazy, but it also had several problems compared to intrusive_ptr :

- The implicit conversion to raw pointer is dangerous. Functions that return a new Ptr because they expect you to take ownership (like Object::copy()) can be used as * = copy(), leaking memory.
- http://code.google.com/p/cortex-vfx/issues/detail?id=37&colspec=ID%20Status%20Component%20Type%20Priority%20Owner%20Summary
- IntrusivePtrs lack C++11 move constructors and assignment.

This forces the developer to call get() to retrieve a raw pointer from a smart pointer, which results in a lot of small changes to the code. But being forced to think a little bit about ownership semantics isn't such a bad thing.
Removed staticPointerCast, constPointerCast and dynamicPointerCast.

The standard boost::static_pointer_cast, boost::const_pointer_cast and boost::dynamic_pointer_cast functions should be used in their place.
Merge pull request #306 from davidsminor/cameraMotionBlurRibFix

fixed camera motion block rib bug
Fixing the tests to work with sets of hashes.

... and reverting to the original bound code for the hash call.
Making hash for child names independent on time for SceneCache.
Changed RefCounted base class binding to use GILReleasePtr too.

It had escaped the previous switchover because it doesn't use RefCountedClass to bind itself.
Removed unnecessary IntrusivePtr warning suppression.

We don't have an IntrusivePtr any more, and we don't have similar warnings for intrusive_ptr because we use GILReleasePtr to hold our python instances.
Added IECorePython::CastToIntrusivePtr.

This can be used as a return value policy when binding a C++ function returning a raw pointer which must be cast to an intrusive_ptr to allow python to share ownership. Previously it was necessary to manually wrap every single such function to return an intrusive_ptr, and then to bind that.
Fixed FileSequence API to use raw pointers where appropriate.
Fixed IECoreGL::Shader API to use raw pointers where appropriate.
Fixed Renderer::Procedural API to use raw pointers where appropriate.
Fixed Parameterised API to use raw pointers where appropriate.
Fixed Display API to use raw pointers where appropriate.
Fixed Camera API to use raw pointers where appropriate.