decodeFromFragmentOrQuery
Deserializes the fragment of this into T, falling back to the query if this carries no fragment.
Returns null if this carries neither, so that callers can tell a URL that transports no parameters at all from one whose parameters fail to deserialize, which throws.