Pull out WorkflowOp merging as a separate operator

This gives us another option for testing workflow construction, which should be helpful as things continue to get more complicated.
I don’t like `++` as a name because it doesn’t have the signature I’d expect. I would love to _have_ a `++` that replaced this function, but this isn’t it.

`merge` is the only option that comes to mind.