(#1961) - typecheck opts.keys to be an array
(#1959) - dangling callbacks in changes cancelling
(#1977) - Remove unnecessary extend() in idb
(#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
(#1973) - Resolve to {ok: true} on destroy
(#1979) - pass limit option to leveldb changes and fix limit + live in http
Merge branch 'master' of https://github.com/daleharvey/pouchdb
(#1999) - Localstorage-down to package.json
(#1997) - parse user agent for the perf tests
(#2003) - remove bluebird from browser tests
(#1990) - move allDocs keys query to adapter.js

This moves the allDocs() logic when opts.keys is
used to adapter.js, which allows us to just do a
simple multi-key fetch for each non-http adapter.

This improves the performance of leveldb.js and should
not have an impact on the performance of websql.js or
idb.js.  Plus it's less code.
(#2008) - use es3ify