Coroutine scheduler is used by default instead of deprecated CommonPool

* Documentation and guide are updated correspondingly
* "DefaultDispatcher" is used as a public name of the default impl
* Implementation is integrated with virtual time-source
* Shutdown sequence is reimplemented in a safe way for tests,
  makes "close" safe to use on custom instances.
* "close" on DefaultDispatcher throws exception just in case
* -Dkotlinx.coroutines.scheduler=off can be used to switch back to
  CommonPool

Fixes #198
diff --git a/docs/exception-handling.md b/docs/exception-handling.md
index 8888c56..6ea9d0d 100644
--- a/docs/exception-handling.md
+++ b/docs/exception-handling.md
@@ -85,7 +85,7 @@
 
 ```text
 Throwing exception from launch
-Exception in thread "ForkJoinPool.commonPool-worker-2 @coroutine#2" java.lang.IndexOutOfBoundsException
+Exception in thread "DefaultDispatcher-worker-2 @coroutine#2" java.lang.IndexOutOfBoundsException
 Joined failed job
 Throwing exception from async
 Caught ArithmeticException