JWS: add function to extract payload from JWS
JWS: overhaul the header type

Simplify the Header type:

* disappear the EncodedHeader wrapper type
* wrap CritParameters in Maybe, obviating NullCritParameters

and implement several new constraints w.r.t. the JWS JSON
Serialization:

* Header Parameter names in "protected" and "header" MUST be
  disjoint
* "alg" may be supplied by either "protected" or "header"
* "crit" MUST occur only with the JWS Protected Header

Also rename the main Signatures type to JWS.