Simplify getPaths - method for getting important key paths from a selector
object.
Restore accidentally-deleted mongo restart code.

Thanks, cli-test.sh!
Make run-tools-tests.sh pass.
Link to a PR and use latest version.
Actually use Slava's function in oplog tailing.

Tests pass, but I have not confirmed that it actually has the desired
end-to-end effect.
Use MinimongoTest object to export private functions for unit tests
replace sequencer writes with reads.
Separate oplog tail queries from other operations.

This prevents the "look up last oplog entry" queries from taking several
seconds 1/5 of the time when the query is on the same pooled connection
as the awaitdata tail query.
Only use one connection for oplog tailing.
Limit poolsize for "last oplog entry" to 1.

This ensures that we allocate sequencers in increasing order.
Add more info to the misordered oplog errors.
Support oplog when MONGO_URL is a replset.

Node's URL parser doesn't support Mongo's "URLs" which contain commas in
the hostname part. Instead of trying to parse, just extract the database
name from ... the database!
Don't fire write fence until observes are steady.
Close connection to DB used to set up oplog.
Set Mongo connection pool size better.

Fixes (for now) misordered oplog errors.
More usable error messages for misordered oplog.
Restructure code to "allow" misordered sequencers.

Throw in an assertion that they aren't misordered anyway. This will be
removed before merge. But it should never fire for a singleton replset.
When FETCHING, process add/delete/replace directly

Unless they are for one of the currently-fetching IDs.

Note that this can reorder observes! But so can poll-based observe. That
said, I think it can reorder them in a more noticable way.

Specifically, with poll-based observe, if you observe two operations A1
and A2 on a doc A, then you are guaranteed to have seen any operation on
any document that occured before A1. This is not the case after this
commit for oplog-based observe. (Not sure if it was before this
commit...)
Stop using weird "curiousity" nomenclature.
Extra error checking around calling callbacks.