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.
Merge remote-tracking branch 'upstream/master' into ready/351
remove ProjectOp.uncoalesced, and the caller

Turns out the caller was dead code.
handle CORS pre-flight requests

Implement OPTIONS method for /query and /data paths, fixing #395
Merge pull request #396 from mossprescott/ready/395

handle CORS pre-flight requests
update version in sbt
Merge remote-tracking branch 'upstream/master' into ready/351

Skipping integration tests for joins for now, because they're taking forever to fail
due to unnecessary projection under "value".
use current version number
Merge pull request #397 from mossprescott/hotfix/publish-version

use current version number in publish script
Merge pull request #392 from mossprescott/ready/351

improve handling of grouping