Make PushMessageData non-constructible; instead use PushMessageDataInit

This commit makes PushMessageData a NoInterfaceObject, for the sake of
future web-compat: this means that we could later replace PushMessageData
with some other API-compatible type, such as the generic binary data
converter interface that @annevk moots in
https://github.com/w3c/push-api/pull/88#discussion_r20755983

So that PushEvents can still be constructed, PushEventInit now has a
PushMessageDataInit data member instead of a PushMessageData.