+str #15946 Support flows without junctions in FlowGraph

* run simple flow with source/sink without any junctions in FlowGraph
* partial flow graph with undefined source/sink and flows, without junctions
* replace undefined source/sink with flow with source/sink
So I'm a bit confused regarding these methods and the other attach methods here, since they are only used from our own tests, and not from any real production code. Why do we have them?