Implement and ship PushManager.supportedContentEncodings

This static property can be used by developers to check which
Content-Encoding values are supported by the implementation for the
encrypted message payloads that a push message can carry.

Right now we only support "aesgcm", which corresponds to
draft-ietf-webpush-encryption-05. Support for the latest version of the
encryption scheme, identified by "aes128gcm" and required by the
specification, is tracked by crbug.com/679789.

This CL also exposes the PushManager, PushSubscription,
PushSubscriptionOptions and extensions to the ServiceWorkerRegistration
interfaces in all workers, matching availability of SWRegistration.

Specification:
https://w3c.github.io/push-api/#dom-pushmanager-supportedcontentencodings

Intent to Implement and Ship:
https://groups.google.com/a/chromium.org/d/topic/blink-dev/jNg1Zth2XrI/discussion

BUG=718020

Review-Url: https://codereview.chromium.org/2863443002
Cr-Commit-Position: refs/heads/master@{#472146}
30 files changed