Make PushEvent's data payload binary instead of just a string

This exposes binary data as a Body mixin from the Fetch spec,
as discussed on https://github.com/w3c/push-api/issues/83
Why is PushMessageData not nullable? It's permitted to omit a payload when sending a push message. How would one check that the data is empty? There's no isEmpty method or something like that.