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