Fixed bug in SceneCache ROP when re-rooting flattened geo with errors.

Previously, if the render SOP had errors, the ROP would continue on trying to write the file, and would return successfully. We know notice that the geo doesn't exist and abort the render. Note that this does leave a partial file on disk, since we aborted after opening the file handle.
Preventing postFrameScript from running if we aborted early.
Merge pull request #285 from andrewkaufman/ropShouldFailOnCookFail

Fixed bug in SceneCache ROP when re-rooting flattened geo with errors.
Added conversions to SHW reader and writer that convert the depth to a standard Z ( distance from image plane ), instead of the weird 3delight "spherical distance from the near clip".

This will change the results we get from reading and converting SHWs, but it should be much more consistent now, and will fix the misalignment we've been seeing in Houdini.
Revert this commit for Cortex 9!
Switched from using member variable to using ClassData, in order to preserve binary compatibility.
Merge pull request #287 from danieldresser/shwPerpendicular

Added conversions to SHW reader and writer
Updating changes and bumped minor version.
Updated to major version 9. Version 8 work should go to the 8_maintenance branch from now on.
Revert "Revert this commit for Cortex 9!"

This reverts commit 97351b6b95fd60f6d95349545d0d57421af75dd8.
Added from-python conversion of RunTimeTypedClass to IECore::TypeId.

This makes calls to things like RunTimeTyped.inheritsFrom() a little more Pythonic, without littering staticTypeId() calls all over the place. The main motivation for this is to replace the isolated code from here :

https://github.com/ImageEngine/gaffer/blob/master/src/GafferBindings/MetadataBinding.cpp#L114

This will allow us to make the Gaffer API more consistent - currently most registration functions implemented in Python take classes directly, but those implemented in C++ and bound to Python require TypeIds. Accepting classes everywhere will make the API simpler and more uniform.
Removed implicit surface functionality.

This hasn't been used in production for a long time, and is considered superceded by functionality elsewhere, in particular OpenVDB.  I've kept the files in the repository for now by just moving them to the contrib directory, so they can be found easily by interested parties if they'd like to use/copy/study/fork it.
Merge pull request #288 from johnhaddon/typeIdBinding

Added from-python conversion of RunTimeTypedClass to IECore::TypeId.
Merge pull request #289 from johnhaddon/implicitSurfaceRemoval

Removed implicit surface functionality.
Removing BGEO and BIN readers/writers.

These haven't been used since they were first written, and haven't been updated to the latest specs for their respective formats.
Removing IFFHairReader.

Maya classic hair is quite old, and modern workflows should be using nHair instead.
Enabling OBJReader tests.

No idea why these were disabled in the first place...
Marking TypeIds for reuse, removed bindings
Merge pull request #290 from andrewkaufman/deadFormats

Removing old geometry formats
Updating IE build options to use the Cortex 9 registry.
Setting explicit tbb location in IE config