[IndexedDB] Propogating Changes to Observer : Browser

The Cl only includes filtering and sending changes to observer only at the browser end.

* Each transaction has a connection-changes map.
* Changes contain i. array of observations
                  ii. map of observer_id to array of indices from observations, that the observer is listening to.
* Changes are filtered during transaction operations
* On transaction commit, for each connection, a single changes map is sent to renderer.

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

TBR=palmer

BUG= 609934

Review-Url: https://codereview.chromium.org/2160163002
Cr-Commit-Position: refs/heads/master@{#406427}
29 files changed