First sketch of flexible merge

Hooked up to the Graph DSL, but not hooked up to FanIn yet. 
With this auto-incrementing approach there is not really a need for `input` /  `output`, I think. Same thing can be achieved with:
 
    in1 ~> flexiMerge ~> out
    in2 ~> flexiMerge
    in3 ~> flexiMerge

Question is, do we want explicit ports or not? An alternative with explicit ports:

    in1 ~> flexiMerge.input(0) ~> out
    in3 ~> flexiMerge.input(2)
    in2 ~> flexiMerge.input(1)