cortex auto instancing patch

added recursive mutex header to IECoreRI::RendererImplementation header

added hash method to a procedural in a test, to stop it complaining
Fixed auto instancing test failures

auto instancing tests on curves and patch meshes were failing, because emitPrimitiveAttributes wasn't being called, meaning the correct basis wasn't being set
fixed crash with auto instancing and transform motion blocks

added unit test for transform motion blur with autoinstancing
IECoreRI renderer now constructs mesh primitives without checking topology

Previously, when rendering scenes with large amounts of instanced meshes, an inordinate amound of time was being spent in MeshPrimitive::setTopology(). RendererImplementation::mesh() now uses MeshPrimitive::setTopologyUnchecked() to avoid that.
Sharing object instance handles across an entire render

Previously, if a render was launched from a rib containing multiple iePython procedural calls, automatic object instances were not shared across those procedurals. This change attempts to address that problem.
simplified RendererImplementation() constructor + fixed a logic error
Merge pull request #105 from davidsminor/IECoreRIautoInstancing

IeCoreRI auto instancing