IECoreMaya::DrawableHolder selection fix (API change)

IECoreMaya::DrawableHolder used to be derived from MPxLocatorNode. This would have been fine and dandy, but for the fact that maya treats locators like flat cards when you're selecting them. Because of this, selection was working very poorly for large objects like environment map spheres. We're now deriving it from MPxSurfaceShape, which gives us more control over the selection process and allows us to implement it correctly.
Fixed GLSL shaders to work with GLSL version 120 (OpenGL 2.1).

Version 120 uses "attribute/varying" for vertex shader inputs and outputs whereas versions beyond that use "in/out". Similarly, fragment shader inputs were renamed from "varying" to "in". The new VertexShader.h and FragmentShader.h headers provide macros to declare the right type based on the current version. Unfortunately, some of the GLSL code provides in the .cpp source files doesn't get preprocessed so those deal with the same issue with macros embedded directly in the code rather than by including a header.

It would be very nice to move to pure OpenGL 3/4 and rip all this stuff out for the next version.
Updated Changes and bumped version to 8.0.0a20.
Adding nameFilter parms for SOP_ParameterisedHolder inputs.

Incoming geometry can now be pre-filtered using these parameters. There is also a toggle to disable the name filtering.

Also stopped using NodePassData in preperation for upcoming commits in OpHolder and ProceduralHolder.
Allowing special case for FromHoudiniGeometryConverters which can have any result type.

This is necessary for ParameterisedHolders to be plugged into inputs of other ParameterisedHolders
OpHolder now operates multiple times over its primary input, splitting by name.

Each operation adds a single GU_CortexPrimitive to the output geometry. The held op will operate on any named shaped in the primary input which matches the nameFilter. Non-matching shapes will be passed through without modification. The other inputs will be treated as they normally would by SOP_ParameterisedHolder.
Avoiding copying ParameterisedProcedurals in case they come from python.

This is necessary to allow the SOP_ProceduralHolder to output a GEO_CortexPrimitive holding its procedural.
ProceduralHolder creates a GU_CortexPrimitive for its procedural.
Adding SOP info text for ParameterisedHolders
DetailSplitter now considers unnamed geo valid.

It stores unnamed geo under "" in its internal cache. This allows users to always use values() rather than having extra logic for an empty list.
FromHoudiniGroupConverter handles multiple unnamed GU_CortexPrimitives
FromHoudiniCortexObjectConverter rejects multiple primitives
Replaced SOP_ToHoudiniConverter with SOP_CortexConverter.

The new node can convert between GU_CortexPrimitives and native Houdini geometry in either direction (using the ResultType parameter). It also has new a nameFilter parameter to limit what shapes are processed. Shapes matching the filter will be converted, while shapes that do not match will be passed through unmodified.
Deleting NodePassData class.

This is no longer necessary now that we have GU_CortexPrimitives. Fixes #36.
Merge pull request #139 from davidsminor/drawableHolderSelectionFix

IECoreMaya::DrawableHolder selection fix (API change)
Updated Changes and bumped version to 8.0.0a21.
Fixing transform bug in SceneCache SOP
Fixing bug in HoudiniScene which was creating phony children.
Preventing seg fault on corrupt SceneCache files
Added IECoreHoudini.makeMainGLContextCurrent() python function.

This makes the OpenGL Context Houdini is using for the main window current. This allows Gaffer (in an upcoming pull request) to share OpenGL resources between the embedded Gaffer windows and the Houdini viewports.