SceneProcedural now holds a ref to the parent script node, to prevent it from getting blown away by the python garbage collector in certain cases
Enable/Disable Behaviour for Nodes
Nodes can optionally define a means of being enabled and disabled. If they do, then they can also specify an input plug corresponding to each output plug. By providing a corresponding plug, the node is promising that the input will pass-through to the output in some meaningful way when the node is disabled.

Implemented correspondingInput for SceneProcessor and ImageProcessor.
Fixed dirty propagation for Light nodes.

Any of the parameters will now correctly propagate dirtiness to the outPlug()->objectPlug().
Replacing uses of "enabled" to locate the enabled plug with calls to enabledPlug()
added unit test/changed comments
Removed dead code.
fixing bindings for enabledPlug and correspondingInput
ScriptNode::deleteNodes optionally attempts to maintain data flow.
By default, deletedNodes will try to rebuild the network to act as if the deleted nodes had been disabled. This is accomplished using enabledPlug() and correspondingInput() to re-wire compatible input plugs to the expected output plugs. This behaviour can be disabled by specifying reconnect = false.
SceneProcedural construction from a ConstScenePlug.

It never needed non-const access anyway.
Improved UI for Executable nodes.

Putting despatcher plugs in a tab and hiding requirements plugs from node editor.
Fixed imcompatibility with PySide.
(cherry picked from commit 2df4b74907ccc33767f42651c9a38f8367f193d5)
Const correctness for Executable::execute() contexts.

Contexts are now passed as ConstContextPtr, ensuring that they're not modified by execute(). Also added some missing includes from the Executable bindings.
Fixing bug in Random::randomColor when using negative seeds.
Deriving WriteNode from ExecutableNode.

Also updated the execute app to call Executable.execute( context ) rather than NotAnExecutable.execute(). DespatcherTest change was necessary to prevent test failures - it was adding a non-dynamic plug to Executable nodes, which would then fail to load after serialisation - preventing it from loading properly in the execute app.

I'm not happy about having to pass a list of one thing to the new execute() method all the time - I much prefer the old "with context : node.execute()" form. We could perhaps add an overload which performs that as a convenience - I tried that but then hit the snag that while the C++ overload is fine, we can't overload in python, and python nodes redefine execute(). This could be fixed by having public execute() overloads which do all their work by calling a protected doExecute() method or some such, which could then be implemented in python. That's out of the scope of this bunch of work though.
Executable render nodes.

Moved the base implementation of the Render node into C++, deriving off a new ExecutableRender node to form the base class for the existing derived render nodes. This means that the existing render nodes should now be despatchable, and we have a solid C++ base class in Render to now branch off an InteractiveRender class for nice IPR style stuff. RenderManRender and ArnoldRender remain implemented in python because they do nothing speed critical.
Added a virtual slider for NumericWidgets.
LeftClick + Control will engage a virtual slider that alters with widget value linearly.
LeftClick + ShiftControl will engage the slider with an exponential scaling.

Fixes Issue #79
seed now has minValue of 0, since negative seeds are a bit silly
First pass at interactive rendering.

Currently implemented only for RenderMan, but with a base class that can be used with other backends once we have Cortex support for rerendering in other renderers. Currently only rerendering light tweaks.

Fixes #141.
Merge pull request #173 from davidsminor/sceneProceduralScriptRef

SceneProcedural now holds a ref to the parent script node, to prevent it...
Viewports can be panned/tracked using middle mouse with no modifier key.
This affects all viewports (3d, 2d, and Node Graph).

Fixes Issue #28