(Only for feedback) +str #15977 Rename and change types in the new DSL

There are still a lot of TODOs here (especcially documentation), but I would like som feedback on what has been done.

* Cleaned up type signatures
* Changed names of Source/Sink/ProcessorFlow to Faucet/Drain/Pipe
* Introduced new Source/Sink/Flow
please explain, I'm not sure that we are on the right track if we need to rely on implicit conversions