(#1961) - ensure that the doc returned is the doc asked for in leveldb, also share current updateSeq accross instances
(#1984) - fix missing_named_view test
(#1987) - improve idb compaction performance

There's no need to recalculate the winningRev or
deletedOrLocal values on the metadata, because
neither one has changed.
(#1981) - more reliable, greppable perf tests

Added the ability to specify ?grep=foo to limit
the perf tests to a single test/suite. Logged
errors to the document, so we know to disregard
the results.

Increased the iterations to a point where the tests
still complete in a reasonable amount of time even
in a slow browser, but aren't so fast that we can't
tell different browsers apart.  Still based on gut
feelings, not statistical measures of significance.
(#1961) - Document allDocs response total_rows
(#1988) - smarter upsert, only updates doc when necessary

You guys were right to say that upsert() had
code smell.  One of the dumb things it does
is update the document whether we need to
or not.

So in the case of persisted mapreduce,
every time you do query(), a new change is
written to the _local/dependentDbs doc,
which is pure waste. This fixes that.
(#1982) - test changes promise resolved when changes cancelled
(#1982) - fix changes promise not being resolved when canceled
(#1996) - Report additional data with performance results
(#1954) - WIP change batching for replication
Return results on change event
Return error XOR results to opts.complete
Fix error to bulkDocs write errors (still ugly but better)
Generate error and complete events
Call opts.complete on error and complete event.
Simplify changes mock in sync test
Simplify changes mock in test issue1175
Create listeners conditionally

Only create listeners to call opts.onChange and opts.complete if they
are functions.
leveldb workaround

leveldb changes ignores options.limit and doesn't stop when the changes
promise is cancelled. This makes it a bit hard to deal with in a way that
limits maximum memory consumption.

This workaround works, but performance is terrible when replicating a large
number of changes because onChange is called so many times.
Handle old and new API in mock
Workaround to leveldb/changes limitations
Disable fetchGenerationOneRevs

With fetchGenerationOneRevs enabled, replication of 500,000 documents
from leveldb to http takes several hours. With it disabled, it takes
under 5 minutes.
Make fetchGenerationOneRevs optional