(#2818) - compaction removes orphaned attachments

Migrated idb/websql to have a new many-to-many table
of seqs to digests, fixed compaction of attachments
in all three adapters, added many new tests.
(#2926) - remove vendor from cordova app
(#2923) - add blob-util to docs
(#2918) - revoke object url for test blob
(#2890) - reduce md5 chunk size to 32768
(#2925) - "10 things" blog post
(#2913) - parallel compaction works
(#2890) - websql: avoid hex() for binaries
(#2931) - parallel compaction keeps db integrity

Contains two fixes:

1. adapter.js no longer passes the rev_tree to the underlying
   adapter. The adapter is expected to recalculate, since other-
   wise the database may change in the interim.
2. leveldb.js has a global write lock for all readwrite operations,
   similar to how WebSQL/IndexedDB work under the hood. I'm not
   100% satisfied with that, but it's better for the db to be
   correct than to be fast.