Added a GIL lock to python object creator wrapper.

Without this, we get crashes if we try to create a Python object via Object::create() from C++, when the calling Python wrapper released the GIL before entering C++. We don't encounter this situation in Cortex so I've been unable to create a test case here, but this is necessary to fix a test case in Gaffer.
Merge pull request #358 from johnhaddon/objectCreatorGILLock

Added a GIL lock to python object creator wrapper.
Fixed TIFFImageReader compilation for GCC 4.2 on OS X.

Converting string constants to char * is deprecated - so we must use const char *.
Added IECoreGL::State::ScopedBinding constructor overload.

This takes a bool indicating whether or not to perform the binding.
Changed IECoreGL::HitRecord::name field from InternedString to GLuint.

The HitRecord is a low level class intended for use with the Selector class which represents names as GLuint, so it makes no sense to use a higher level representation. This will allow the Selector to be used with simple integer names where that is more appropriate. Continuing to use the higher level representation is facilitated by the NameStateComponent nameFromGLName() and glNameFromName() methods.

Binary incompatibilities :

- Changed IECoreGL::HitRecord members
Added IECoreGL::Selector::loadName() overload to auto-generates names.
Removed IECoreGL/TextureUnits.h.

It was completely unnecessary, and served only to illustrate my ignorance of the OpenGL API.
Added python bindings for IECoreGL::CurvesPrimitive.
Added python bindings for IECoreGL smoothing state components.
Added IECoreGL::ToGLStateConverter.

This converts a CompoundObject representing a whole block of attributes directly into an IECoreGL::State object. Its current intended use is in Gaffer, where it will allow us to implement a faster Gaffer->GLScene coupling. This does duplicate some functionality from IECoreGL::Renderer, but we're justifying it by the Gaffer refactor being an important step towards a GL scene graph without an awkward Renderer interface in the way.
Added implementation of tbb_hasher for boost::intrusive_ptr.

This allows intrusive_ptr to be used in tbb concurrent unordered containers.
Fixed crash in ShaderStateComponent::addParametersToShaderSetup().