Async Cookies: Change events in service workers.

While installing, a service worker may call
cookieStore.subscribeToChanges() to express interest in observing the
changes to the list of cookies sent in a request to a specific URL.
After the service worker becomes active, it is notified of changes to
the cookies it is interested in via  "cookiechange" events, which are
dispatched to the service worker's global scope.

This CL lays the last piece in the foundation of the Async Cookies API,
which is currently gated by the Experimental Web Platform Features flag.
This CL focuses on the core functionality and plumbing. Follow-up CLs
will add more tests, fix the handling of edge cases, and improve
performance.

Bug: 729800
Change-Id: I52f2e550d7901d746ed1a973426d3181ea091147
Reviewed-on: https://chromium-review.googlesource.com/979334
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Reviewed-by: Mark Pearson <mpearson@chromium.org>
Commit-Queue: Jeremy Roman <jbroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558682}
66 files changed