Split JwtHeader into two JWS and JWE types.

This simplifies the content of each and allows better use of the
separate algorithm types introduces earlier.

Jwt is now a sum type (Jwe | Jws) which more accurately reflects the
up-to-date spec model.