* 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
* Cleaned up type signatures
* Changed names of Source/Sink/ProcessorFlow to Tap/Drain/Pipe
* Introduced new Source/Sink/Flow
* Made all Pipe types package private
* Changed the TypeGraph DSL to work on Flow/Sink/Source
* FlowGraphCompileSpec broke when merging in the unzip on top of
the variance adjustements
* JunctionOutPort[T] must not be defined like JunctionOutPort[+T]
because then the NextT = Nothing doesn't work
* Do we have a reason to use JunctionOutPort[+T]? I added +T
only for symmetry reasons with JunctionInPort[-T].