* Database migration: Fix attachments with unexpected structure
* Attachment cleanup: Remove all attachments with no data field
* Export: Allow user to cancel out on error if never succeeded
* Only update attachment id if fileName not present
Turns out that modern attachments only have fileName, without an id.
* A small tweak to the attachment fix-up migration, test coverage
* Take migration version back down to 16
* Jshint fix in database.js
Add window.storage to the background page, which loads all data from the
'items' store in indexeddb, caching them in memory for synchronous
access, then override textsecure storage to use that in memory store.