prefixes arnold shader search names with 'ai'
Exposed "enabled" plugs in a new Node Editor "Node" tab.

Fixes #759.
Merge pull request #764 from johnhaddon/exposeEnabledPlug

Exposed "enabled" plugs in a new Node Editor "Node" tab.
Update ShaderMenu.py

bringing the spacing in line with other types (as per john's notes)
Removed MessageWidget.textWidget() method.

The internal text widget should now be considered private. The currently displayed messages may be cleared using the new MessageWidget.clear() method.
Fixed MessageWidget crashes encountered in Maya.

After much stumbling around in the dark, I've thrown in the towel on trying to get block level visibility edits working, and resorted to a simpler approach where messages are stored independently of the text widget.
Removed deprecated MessageWidget.appendException() method.

It has been deprecated for a few versions now and is no longer used within Gaffer. The appendMessage() method is still used by NotificationMessageHandler so remains for now.
Add control over the default button to the OpDialogue.

This controls whether the OK or Cancel button is focussed by default when displaying the Op. The default value is as before, focussing the OK button, but the value can be controlled either by user data in the Op or by passing an alternative argument to the OpDialogue constructor.
Merge pull request #756 from bentoogood/arnoldShaderMenu

Added search prefix to arnold shader names
Merge pull request #767 from johnhaddon/messageWidget

MessageWidget fixes
Merge pull request #768 from johnhaddon/opDialogueFocus

Added control over the default button to the OpDialogue.
Fixed bug preventing positioning of nodes within Backdrops.

The collision group mechanism may seem a little more general than is needed for this particular fix, but I believe it has uses down the line, in particular for laying out individual islands of nodes separately before aligning them as required by #155.

Fixes #769.
Removed unreasonable todo item from ComputeNodeTest.

This dates back to a time before contexts were introduced and there was effectively a single global context. Back then each plug actually had a dirty flag, representing whether or not it had been computed for that context yet. That is no longer the case, and the idea of a flag defeats the object of multiple contexts and theaded evaluation.
Removed unused (and unimplemented) Gadget constructor.
Adopted new Python wrapping mechanism from Cortex.

This allows us to avoid a great deal of overhead when wrapped classes are created from Python but not subclassed.
Improved NodeGraph.frame( extend=True ) behaviour.

It was enforcing a maximum zoom level, which is essential for the extend=False case, but annoying in the extend=True case. If a user has chosen to zoom in a long way, then we shouldn't change that unless it's totally necessary to show the nodes.
Optimised Wrapper isInstanceOf() implementations for common cases.
Merge pull request #770 from johnhaddon/layoutFix

Fixed bug preventing positioning of nodes within Backdrops.
Fixed test cases for wrapping changes.

Prior to this, a lot of unnecessary wrapping and garbage collection for wrapped-but-not-subclassed objects meant that we could use "is", but now we must use ".isSame()" to work around object identity problems. That's the price we pay for improved performance in this case. Note that in general ".isSame()" has always been necessary for RefCounted types, and we were just lucky that the particular types used in those tests had been wrapped before.
Fixed test by removing member injection from non-wrapped class.

With the new optimisations in the wrappers, we can only expect object identity to be preserved for wrapped classes subclassed in Python.