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.
DFS is a DFS independently from how many initial vertices you have. In fact connecting one auxiliary vertex to the set of vertices you want to DFS from converts one problem to the other. The advantage of strict DFS traversal is that when you traverse a vertex, you can attach all of its input flows to it in one step, and it is also guaranteed that all of its output edges (flows) has been attached. Except with cycles but that is a different issue.