Deriving SceneWriter from ExecutableNode

I also removed a line from SceneReadWriteTest.testSceneCacheRoundtrip which was failing prior to this pull request. I don't think that line was actually proving much, and removing it allows the test to actually validate the Writer.

Fixes #864.
Renaming SceneReadWriteTest to SceneWriterTest.

Also migrated the read-only tests to SceneReaderTest.
Switched to Context::Borrowed copy construction, and moved scoping to the top level.
Renamed Despatcher to Dispatcher
Fixed ArnoldRender "Generate expanded .ass" mode.

The `-resaveop` flag was removed in Arnold 4.0.10.0, so we now use the recommended alternative of `-forceexpand -resave`.
Fixed circular reference in GafferUI.MultiSelectionMenu.
Deriving Dispatcher from Node

Also made registerDispatcher binding public, since it's public in c++
Renamed addAllPlugs to setupPlugs and addPlugs to doSetupPlugs.

Added documentation about recommended practices when implementing doSetupPlugs
Merge pull request #877 from andrewkaufman/dispatcherNode

Deriving Dispatcher from Node
Re-jigged Scene menu in the Node Graph.

Added Scene/File for readers and writers. Moved Object/Generators to Scene/Source and Object/Modifiers to Object
Merge pull request #873 from andrewkaufman/sceneWriterExecutable

Deriving SceneWriter from ExecutableNode