Reorganizing parameters on SceneCache OBJs.

Standard OBJ parms are now visible. This required re-jigging things so our new folders are in the same tab layout (switcher) as the originals. Since the original transform parms do not function, the Transform folder is hidden by default.

This causes a strange bug which is fixed by the next commit.
Overriding getIndirect() to avoid parm caching errors.

This cryptic virtual function is used (internally by Houdini) to cache parameter indices, so that parm lookup by name is done only once. This seems to only affect the SceneCache OBJs because they're the only nodes which add their own parameters before base class parameters.

This solves the bug mentioned in the previous commit. All tests pass again.
Adding standard mantra geometry parms to SceneCacheGeometry OBJ.
Supporting click-selection for GU_CortexPrimitives

Thanks to John for his glProgram tomhackery.
Preventing popping during click-selection.

Its not clear why, but hovering on GU_CortexPrimitives during GR_RENDER_OBJECT_PICK mode seems to flip the mode to GR_RENDER_MATTE. Since we're not supporting that on its own, we consider it a continued pick for now.
Highlighting selected GU_CortexPrimitives
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.
Added binding for HoudiniScene::node()

This gives access to the underlying Houdini node. Note that we aren't currently return a PyObject* directly, because Houdini only provides a mechanism for that using swig, which we don't build. I've requested that SideFx provide a swig-free approach, and if they do, we should fix this up.
Added HoudiniScene::embedded() method and bindings.

This returns a bool indicating if the scene is pointing to hierarchy embedded inside a SOP.
New way to register MayaScene custom attributes
Added python binding for MayaScene custom attributes, updated MayaSceneTest
Replaced MayaScene::hasAttribute for loop with find
Fixed bug #4837: "Knobs not found" warning messages.
The bug only appears when loading the LensDistort node UI for the first time with a file sequence specified. The cause was the early termination of the knob_changed() method before an update
to the dynamic knobs was made. The fix also the code simpler to read.
Fixed an issue where the artefacts were appearing around the edges of the bounding box despite the "black_outside" flag being turned on.
An additional result of this fix is that the distorted image is no longer clipped slightly around the edges.
MayaScene fixes for root, updated test for customAttributes
Fixed SceneCache build problem on OS X.
Removed IECoreGL/Lights.h.

It was unecessary before, isn't used anywhere, and refers to deprecated OpenGL functionality we wish to move away from.
Removed IECoreGL/GLUT.h.

We don't have a dependency on GLUT any more, and we should have removed the header when we removed the dependency. Also fixed inaccurate comment in IECoreGL.h.
Added FnSceneShape createChild, extracted from expandOnce.
Fixed IECoreGL::PointsPrimitive crash on OS X.

It seems that some drivers don't like being passed 0 points to be rendered.