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.
Right, I wondered about that possibility and didn't go back to clean up the comment. I'll remove it so as not to cause confusion.