[IndexedDB] Refactor & clarify leveldb database creation & ownership

This refactors the way the LevelDB database is opened for IndexedDB.
Classes like IndexedDBBackingStore and LevelDBDatabase now accept their
dependencies on construction, instead of constructing/initializing their
dependencies on creation. This allows for much easier testing and
reasoning about state in the code.

TBR: jam@chromium.org
Bug: 862456
Change-Id: I4202bd1e75915ef7eed86e3a2cc0ad7d4fdc5d06
Reviewed-on: https://chromium-review.googlesource.com/c/1357015
Commit-Queue: Daniel Murphy <dmurph@chromium.org>
Reviewed-by: Mark Pearson <mpearson@chromium.org>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Reviewed-by: Chase Phillips <cmp@chromium.org>
Cr-Commit-Position: refs/heads/master@{#620885}
44 files changed