Web push notifications for pipeline status transition
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=16747)
</details>
<!--IssueSummary end-->
We should send push notifications for pipeline status transitions to explicitly subscribed users. We should do this using [`webpush`](https://github.com/zaru/webpush) on the BE and [`PushManager`](https://developer.mozilla.org/en-US/docs/Web/API/PushManager) on a [`ServiceWorker`](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API) on the FE.
This will mean users won't have to keep a pipeline page tab open in order to smart poll for status updates to get notifications. When the status changes, sidekiq will execute a worker job that sends a push notification to all subscribed users.
POC: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15961 (very POC, will need some understanding of rails and js to get working)

[Web Push Notifications - Timely, Relevant, and Precise](https://developers.google.com/web/fundamentals/engage-and-retain/push-notifications/)
issue