+str #15977 add SourceFlow/SinkFlow

- sources must really be sources (the same for sinks), hence
  ProcessorFlow cannot implement either of these
- therefore they are just other names for FlowWithSource/Sink
- also fixed type-safety of FlowGraph’s edge labels
make the constructor and `ops` `private[scaladsl2]`?