Cookie Store: Rewrite CookieMonster's notification dispatch.

The old implementation was designed to support a small, static number of
observers. The new implementation supports the churn (adding/removing
observers) that will come from exposing cookie change observation to Web
APIs.

The new implementation also adds AddCallbackForUrl(), which is in
between AddCallbackForAllChanges (no filter) and AddCallbackForCookie
(very specific filter). The new method will be used by the Async Cookies
API implementation.

Bug: 729800
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: Idc58252ede82be82b34c530607e811d5392801cd
Reviewed-on: https://chromium-review.googlesource.com/934304
Commit-Queue: Victor Costan <pwnall@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#540460}
17 files changed