simplify implementation of &&& in a way that guarantees correct result; fixes #199
Merge pull request #202 from jdegoes/ready/199

simplify implementation of &&& in a way that guarantees correct result; ...
capture errors during pipeline execution

The MongoDB Java driver does not usefully report (or even expose)
errors that occur during aggregation operations if they are submitted
through DBCollection. Using DB.command() instead allows us to
explicitly look for failures and to capture the descriptive error
message as seen in mongo shell.
Merge pull request #204 from mossprescott/minor

capture errors during pipeline execution
extract sort keys directly from logical plan so pipeline builder doesn't have to see through groups and other operations; fixes #201
Merge pull request #205 from jdegoes/ready/201

extract sort keys directly from logical plan so pipeline builder doesn't...