Implements deleteRecord
Adds tests for bulk changes
Loads data eagerly, so {async: true} is not needed in models

Basically, this adds an extra query to every record, so we always return
relationships, so using `{async: true}` is not needed. Doing these extra
operations is cheap, given it's in the browser.

However, the code can be improved in terms of opening unique transactions in
IndexedDB. Right now, for every query we open a new transaction.

Furthermore, the code became somewhat complex with the addition of
`loadRelationships()` and `loadRelationshipsForMany()`. The code that
creates IndexedDB transactions should also be extracted and DRY'ed.