Reorderer the conditionals that define the name that the MultiSelectionMenu displays.
The result is that if there is only one selection then it is displayed rather than just saying "all".
Fixed dirty propagation for Light nodes.

Any of the parameters will now correctly propagate dirtiness to the outPlug()->objectPlug().
Removed dead code.
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.
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.
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.
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.
First commit on the sampler framework.
Added the Sampler class.
Added the Filter class.
Added docstrings.
Updating Changes file.
Merge branch 'rerendering' of https://github.com/johnhaddon/gaffer into johnhaddon-rerendering

Conflicts:
	Changes
	python/GafferSceneUI/__init__.py
Merge branch 'johnhaddon-rerendering'

Conflicts:
	Changes
	include/GafferScene/SceneProcedural.h
Merge branch 'master' of https://github.com/ImageEngine/gaffer

Conflicts:
	Changes
Bumped minor version.
Fixed SceneReader for Cortex API change.
Bumped patch version.
CompoundPlugValueWidget remembers collapse state.

State is stored on a hidden, non-serialisable plug on the node, and updated whenever the collapse status changes. On building a new ui, we restore any previously stored state.
Node Editor remembers current tab.

Node Editor stores the last viewed tab on a non-serialisable plug on the node, and uses it to set the current tab when generating new uis.

Fixes #87.