move responsibility for sorting input/output properties

This will allow us to add new operation types that depend on particular
sort order for their inputs and outputs (like Converge).
add support for Converge to WorkflowBuilder