Adds support for badging scopes.

There has been significant discussion on the explainer repo
about the best way for badging to work. The API has undergone
a major redesign.

Previously, badges were associated with a specific installed
web application, which severely limited the usefulness of the
API.

In the revised API, a badge is associated with a scope. This
reflects the way that web applications work, so it is possible
to badge multiple nested applications. In addition, this
should allow us to expose the API from the service worker in
future (which is not implicitly associated with any
application). The scopes solution has the added advantage
that other, non-app contexts (such as bookmarks) could be
badged in the future.

Explainer:
https://github.com/WICG/badging/blob/master/explainer.md

Bug: 987514
Change-Id: Ib11500e1b4f26eabe402153d27176e786c33768a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1723849
Commit-Queue: Matt Giuca <mgiuca@chromium.org>
Reviewed-by: Matt Giuca <mgiuca@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#692412}
26 files changed