DispatcherUI calls Dispatcher::dispatch() on the main thread.

LocalDispatcher has a new executeInBackground plug and manages the background thread on its own. This is so we can do alter things before the asynchronous bit begins.

Note that while Dispatcher::postDispatchSignal() is still called after the dispatching itself finishes, it may now be called before the actual task execution finishes.
Merge pull request #920 from andrewkaufman/asynchronousDispatcher

DispatcherUI calls Dispatcher::dispatch() on the main thread.