Fixes #146, #172 Added a pair of awaitAndShutdown() methods to Dispatchers to gracefully shutdown the internal threads/threadpools/ringbuffers and wait for submitted tasks to complete. The method blocks until all tasks are complete then completes the orderly shutdown so no more tasks can be submitted to that Dispatcher.