improve handling of grouping

Eliminated the `groupBy` param in WorkflowBuilder. GroupOps are now
created immediately, then rewritten in reduce. Unwinds are introduced
when needed (squash, build, before sorting, etc.) (Fixes #230; Fixes #351)

A proper merge for GroupOps, which renames all the values on both
sides. Several fixes to other merge cases.

New structure for OrderBy in the logical plan, which allows the planner
to avoid constucting any constants for asc/desc.

Coalesce ProjectOp after GroupOp and GroupOp/UnwindOp, and collect
smaller values when possible by moving fieldProjects into the groupop.
It looks like we could just push some code around in sortBy and get rid of it there as well. Should we add a ticket to do that sooner rather than later?