Preserve order in distinctBy

WorkflowBuilder now inspects the merged source workflow and if it is ordered,
attmepts to reconstruct the $sort op after grouping. This works only if the
source pipeline has one of a couple of recognized shapes.
pending test for unhandled case
Note: previous commit fixes #284
Improve LIKE/regex handling.

* Move handling of LIKE patterns to the compiler,
* add a `Search` functinon that takes a regex,
* add support for Postgres’ `~` operator (alias for `Search`),
* enable escape characters for LIKE patterns (fixes #65),
* change parsing of “suffixes” to be less hacky, and
* get rid of the `NotIn` and `NotLike` Binops and std lib functions.
Merge remote-tracking branch 'upstream/master' into ready/order-preserving-distinct
Merge pull request #374 from mossprescott/ready/order-preserving-distinct

Preserve order in distinctBy
implement API for queries via GET (Fixes #350)

Make output path optional when executing queries. If not specified,
the evaluator simply leaves a result temporary collection in place.

Added a TODO on cleaning up these temporary collections.
delete temporary collection after reading results

- remove “requested output” collection param from Evaluator
- Backend now moves the temp collection to the requested location when
necessary (or deletes it)
- REPL and API (GET) both get temps cleaned up for free
- “native” (JavaScript) plan no longer has the destination of the rename
Pull function names from StdLib rather than hardcoding strings.

Also

* eliminate the now-unused Between BinaryOperator, and
* add handling of `not` for `between`, and fix it for `in`.

Previous implementation would error if you tried using `not` in suffix
position for anything other than `like`.
Merge remote-tracking branch 'upstream/master' into ready/65-LIKE-escapes
use Process combinators to clean up (and don't rely on laziness of onComplete)
add cleanUpWith to Process
Merge pull request #381 from mossprescott/ready/350

implement API for queries via GET (Fixes #350)
Add new integration tests for LIKE and regex.
Merge remote-tracking branch 'upstream/master' into ready/65-LIKE-escapes
Merge pull request #379 from sellout/ready/65-LIKE-escapes

Improve LIKE/regex handling.