More WorkflowOp debugging improvements

- RenderTree.diff now reflects node type changes
- RenderTree.diff output more readable
- properly indent for multi-line labels (i.e. JavaScript)
- render SingleSourceOps as a flat list under a "Chain" node
- less amiguous labels for projections
- foldLeftOp takes varargs instead of a NEL
- a little more coverage
Could you modify this to require at least two sources? I’ve locally made changes to `coalesce` so we elide the FoldLeftOp when it has a single source, but I think (given the varargs approach) enforcing it in the type (and changing `FoldLeftOp`’s signature to match `FoldLeftTask`’s) is better.