=str #15755 #15756 First stab at input/output factories

* New naming based on Source and Sink

Some parts of this convoluted/wrong. Take a look and we can discuss.
I don't by that argument. That is the purpose of `Publisher` and `Subscriber`.
I agree that some sources/sinks require specialised materializer, but if the materializer is a constructor argument I can't see that you can define the Flow/FlowGraph at one place, and then use it, run it, at another place.
We need a FlowMaterializerProvider ;-) ooh, no