* Fold Tap/Drain into Source/Sink
* Create Source/Sink helpers to create all Sources/Sinks
* Make concrete Source/Sink implementations private[scaladsl2]
* found and fixed one issue: onError was invoked twice for the overflow
error
* and also noticed that we restart the actors, instead of stopping them
in case of internal error, changed to stopping strategy