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.
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