Redesigned Dispatcher registration

Fixes #922
Added a default dispatcher.

Note that it starts out NULL, and is set to the LocalDispatcher by a config for the gui app
DispatcherWindow now manages its own list of Dispatchers.
Added basic support for RenderMan volume shaders.
Merge pull request #1056 from johnhaddon/volumeShaders

Added basic support for RenderMan volume shaders.
Default dispatcher is just a type now.
Dispatchers now register a function to setup executable plugs.

This replaces the doSetupPlugs virtual function, so we don't need to create Dispatchers when making ExecutableNodes.
Separated adding new dispatchers to the DispatcherWindow from setting the current one.

[ci skip]
Rejigging DispatcherWindow API a bit
Merge pull request #1054 from andrewkaufman/dispatcherRegistry

Redesigned Dispatcher Registration