Replaced GafferScene::Render base class with RendererAlgo.h header.

The base class didn't provide any useful functionality as far as abstraction was concerned - it was just a place where we put utility functions the derived classes needed for talking to renderers. Since that functionality could be useful elsewhere, it makes more sense to provide it in a namespace available to all.

There is similar functionality buried in SceneProcedural that we should move to RendererAlgo.h at a later date. For now we're just moving the code from the Render class, because we need to move the Render class out of the way to do implement some needed refactoring of the Executable code.
Simplified Executable nodes.

I originally suggested to Lucio that he develop the Executable nodes using multiple inheritance of an Executable interface class, so that nodes could be both say a SceneNode and also Executable. That turned out to be a bad idea because the class hierarchy was rather confusing and it put the onus on developers to remember to call various methods to add plugs, test inputs were accepted etc. This led to problems like the crash bug in #681, and was just generally a bit more awkward than necessary.

This commit simplifies things so there is now just a single ExecutableNode base class which fits in nicely with the DependencyNode and ComputeNode base classes. The implementations for the various derived classes are now a fair bit simpler, and the bindings are performed with a new ExecutableNodeClass which matches nicely with the NodeClass and DependencyNodeClass we already have.
Revised todo for a custom ExecutableNode UI.
Added return value check for ExecutableRender system command.
Added todos for ExecutableNode::Task.
Merge pull request #838 from johnhaddon/executableImprovements

ExecutableNode improvements