(#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
(#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.