Back/webpush
This PR adds web push support to send push notifications. Web Push is defined by 3 RFCs: RFC8030 (the requests), RFC8291 (encryption) and RFC8292 (server authorization).
It can then be used by the web application to receive real time notifications, even when nextcloud isn't opened in a tab, and without the notify_push app (which adds a websocket support to nextcloud). This is particularly useful for collaborative work, as nexcloud isn't always opened but we can expect to be notified anyway. This support is in the second PR
This support also allow to get push notifications on Android without the proxy:
- FCM servers can be notified with webpush
- UnifiedPush can be used, for user who prefer or can't use the Play Services
Fix #1225
Required for: https://github.com/nextcloud/android/issues/8684 https://github.com/nextcloud/talk-android/issues/257
Which will also fix: https://github.com/nextcloud/android/issues/12151 (won't be necessary) https://github.com/nextcloud/android/issues/11898 (duplicate) https://github.com/nextcloud/android/issues/5510 (supersede, openpush was a research project, and their website now link to unifiedpush) https://github.com/nextcloud/android/issues/8800 (another duplicated ?) https://github.com/nextcloud/android/issues/3333 (UP supports allow using FCM without the proprietary lib) (There might be other issues)