[IndexedDB] Refactor: Factory, Database, and BackingStore not refcounted

This patch fixes shutdown and ownership issues, which are needed for
Scopes integration. It:
* Refactors the IndexedDBFactoryImpl to have a per-origin factory,
* Creates a more explicit ownership and shutdown flow for the factory,
* Creates a more explicit shutdown flow for the databases,
* Makes most objects no longer refcounted in the IndexedDB codebase.

Doc:
https://docs.google.com/document/d/1jX6OOQJ0aLrWAeqYLtARXPFawUlJPbHNIKAK-0vmFHU/edit#heading=h.91yfo2eejgg8

Bug: 903515
Change-Id: Ic41e631d48cb4f045ef0d53037d341096bf046b6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1570815
Commit-Queue: Daniel Murphy <dmurph@chromium.org>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Reviewed-by: Chase Phillips <cmp@chromium.org>
Cr-Commit-Position: refs/heads/master@{#662468}
41 files changed