Prototype of FlowGraph

Early prototype for discussing the way forward.
Before we start with the DSL sugar I would like that we express the functionality in terms of something similar to the raw addEdge methods.
The whole point of being DFS is that you build up the graph layer by layer. At the point when you materialize layer n you already finished with layer n-1. This means that at the point where you materialize a Merge/Bcast all of its downstream Flows are available, and it is able to half-bind all of its upstream Flows. This goes recursively layer-by-layer.

Cycles are not handled by this of course but I would be happy currently to have the "simple" one working.