fix ThreadPool dispatching
Rename BaseDispatcher to SingleThreadDispatcher and promote BaseLifecycleDispatcher as the root Dispatcher