Support for 3rd gen APNS wire format

This adds support for the newest APNS wire format. This adds support for

- `content-available` pushes (e.g Newsstand)
- background pushes
- delivery priority
- push expiration time
- support for notifications IDs allowing removal of read messages on other devices

without breaking API changes.