Simplified Dispatcher implementations by providing doDispatch with the unique task list.
Dispatchers now require that all nodes belong to the same ScriptNode.
Added Frame Range options to Dispatcher.

Dispatcher generates its tasks by looping over the frame range provided. Derived classes will recieve TaskDescriptions which have already accounted for the frame range.
Made uniqueTasks private
Removed unneccessary uses of IECore.curry
Renamed obscure test parameter and added todo to make test a bit cleaner.
Fully copying Contexts in the unit test.
Added todo to simplify DispatcherUI framesMode
Fixed ExecutableTest now that uniqueTasks is private.

Task uniqueness is tested by DisaptcherTest anyways.
Dispatcher plugs are serialisable.
Merge pull request #884 from andrewkaufman/dispatchFrameRange

Dispatcher Frame Ranges