drop intermediate collections after final result is generated (Fixes #339)
respond to PR feedback

simplify handling of temp collections:
- Write result of each (non-read) task to a new temp collection.
- The final result is renamed (by the evaluator) to the requested name.
- Detect problem in the structure of FoldLeftTasks

Also:
- more test coverage for evaluator
- fixed checking of results with empty result when matchAll is false
Merge pull request #340 from mossprescott/ready/339

drop intermediate collections after final result is generated (Fixes #339)
Add tests for the new merge cases.

This also includes tests @mossprescott wrote on `WorkflowBuilder`, as
well as some other improvements he made to `WorkflowBuilder` and
`WorkflowOp` to improve their testability.
Merge remote-tracking branch 'upstream/master' into ready/329-missing-merge

Conflicts:
	src/main/scala/slamdata/engine/physical/mongodb/workflowop.scala