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.
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.
Fixed CoordinateSystem API to use raw pointers where appropriate.
Fixed Group API to use raw pointers where appropriate.
Fixed IECoreGL::Texture API to use raw pointers where appropriate.
Updated IECoreMaya for raw pointer API changes
Updated IECoreHoudini for raw pointer API changes
Updated IECoreNuke for raw pointer API changes
Updated IECoreMantra for raw pointer API changes
Fixed numeric TypedData __eq__ and __ne__ bindings.

The nice sensible implementation inherited from the Object base class was being masked by the __cmp__ definition, which unhelpfully throws when the second argument is not of the same type as the first. The fix defines __gt__, __ge__, __lt__ and __le__ individually, leaving the original equality operators as-is. I'm not really sure of the use cases for these operators anyway, and tend to think that `x.value <= y.value` would do the job just as well if not better, but I haven't removed them because there's no way of knowing what Python code uses them in the wild.

In Python 3 __cmp__ is totally removed anyway, and defining the operators individually is the only supported form.
added M44dData attribute support to IECoreRI::Renderer