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