[IDBObserver] Lifetime Management: Adding and Removing Observer

* Corresponding to each observe call at renderer side, an Observer object is created in the backend.
* The observer begins observing after the completion of transaction it was created with.
* The observer is removed when we have an unobserve call on observer or database connection closes.

Current Implementation and Future Scope: https://docs.google.com/a/google.com/document/d/1viweV7zje2vK9IC-_G0PYlWgGrBhcVYlIMFsogsoHmM/edit?usp=sharing

Reference: https://github.com/dmurph/indexed-db-observers/blob/gh-pages/EXPLAINER.md

BUG=609934

Review-Url: https://codereview.chromium.org/2062203004
Cr-Commit-Position: refs/heads/master@{#404283}
37 files changed