Dispatcher Provider
An interface that defines the different types of dispatchers used with a coroutine. Use StandardDispatchersProvider to get an implementation of DispatcherProvider that contains the default coroutine dispatchers. By depending on an interface instead of the dispatchers directly, it becomes possible to switch out all dispatchers with test dispatchers when running tests.