Made webPublicationDate optional.

(Don't merge yet, I'm still making sure there are no problems)

This enables preview.

Backwards compatibility has been maintained (except maybe if people are using the `unapply()` method).

@JustinPinner @tackley this look ok?