(#2679) - add compaction+replication test
(#2655) - test and fix auto_compaction
(#2677) - local docs start at 0-1, don't save _revisions

Two things:
* local docs should start at 0-1, not 0-0. This is not strictly
  necessary to solve the bug, but I find it easier to understand
  when we do exactly the same thing as CouchDB.
* CouchDB tries to "help" us by also giving us a revision object
  (e.g. `"_revisions":{"start":0,"ids":["5"]}` for rev `'0-5'`),
  which we save ver batim and then return back when you do a GET
  on that same local doc. That confuses CouchDB and it ends up
  giving us the wrong _rev the next time it PUTs the doc.
 (#2690) - update localstorage-down dep
(#2685) - fix bogus conflicts, remove 20x speedup
(#2478) - cancel changes when replication is canceled
(#2702) - 3.0.3 + blog post + API changes
(#2662) - only create one db instance when syncing
(#2698) - fix attachment md5 encoding

This also significantly augments our test coverage,
because we're now testing that the md5sum we get
back from our md5 algorithm is exactly the same as
CouchDB's. The only exception if for plaintext, which
CouchDB hashes differently due to using ICU instead of
ASCII.
(#2577) - fix binary/blob attachments over http
(#2701) - fix blob content type in Chrome 37
(#2713) - fix empty attachments in chrome 37-39
(#2577) - remove now unnecessary try/catch
(#2577) - fix issue with callback not being defined
(#2721) - default pouch constructor options with replicate
(#2704) - fix for npm release
(#2658) - fix small errors in release instructions
(#2725) - blob post for version 3.0.4
(#2725) - 3.0.4 version updates
(#2735) - always populate the default constructor and add sync wrap