(#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
(#2737) - fewer test db names
(#2543) - fix call stack exceeded err

In addition to the fix in pouchdb-extend,
we needed to implement a custom JSON.parse/
JSON.stringify just for the rev trees.
(#2719) - add video tutorial link
(#2717) - use err.status, not err.name
(#2740) - 3.0.5 blog post and version updates
(#2623) - compaction improvements