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
@beverloo wrote:
> If PushMessageData is required, how does the developer construct it? You should define the expected constructor arguments.

I can allow them to be constructed from a [BufferSource](http://heycam.github.io/webidl/#common-BufferSource). But I'm not sure whether that's useful, since IIRC you can't yet dispatch custom events to Service Workers?

I guess there's no harm, other than it might slightly restrict our ability to change the constructor in future (e.g. to add a type parameter).