refactor MongoDBEvaluator to make the logic reusable
use MongoDBEvaluator to convert physical plan to JS (Fixes #111)
Merge pull request #136 from mossprescott/issue111a

New PR, on a new branch, still fixing #111
capture result of each (major) phase including result tree in a PhaseResult ADT
Fixes #133

Replace “log” in response with “phases” containing an array of objects,
one for each phase, with the result tree rendered into JSON objects in
a simple, fairly human-readable way.

When an error occurs, the response body now contains JSON with “error”
and “phases” as above
Merge pull request #137 from mossprescott/trees-in-api

New PR, on a new branch
test for sub-selects (one pending)
emit Squash for each SELECT (Fixes #132)
In Mongo, always use ListMap instead of Map.
Whoops – missed a case that was added when I rebased.
Merge pull request #141 from mossprescott/squash-selects

Squash each select
Merge pull request #142 from sellout/48-order-of-fields

In Mongo, always use ListMap instead of Map.
translate Paths to valid dot-separated MongoDB collection names (Fixes #139)
add type information to RenderedTrees (Fixes #106)

use a single case class for RenderedTrees (but with alias constructors Terminal and NonTerminal)

nodeTypes for Workflow trees

nodeTypes for LogicalPlan (and annotated forms)

nodeType for None

nodeTypes for AST annotations

handle the umpteen AST node types in RenderTree instance
improve handling of nested paths
move much of the path wrangling into mongodb.filesystem
simpler path<->collection name translation
escape '$' in collection names
Parenthesized expressions fail to parse.

Added pending test.
Merge pull request #146 from sellout/minor-fixes

Parenthesized expressions don’t parse correctly.
cleanup
simplify result type for ls()
Merge pull request #144 from mossprescott/139-nested-paths

translate Paths to valid dot-separated MongoDB collection names (Fixes #139)