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.
It is sugar for attachSource, I found it confusing to use `in1 ~> f1` for that also, because that can be confused with forgetting `~> merge` when the intention is to define  `in1 ~> f1 ~> merge`  

Also, I wanted to make it visible (explicit) that a source is not attached, see `undefinedSource ~> f1 ~> merge`.
It means that all `~>` have a from/flow/to pattern.

Not sure about the choice of the `~=>` characters though, perhaps better with something that stands out more from `~>`