Pair each JOSE error subclass with its stable code so code switches can
narrow safely without closing subclass code values.
Share typed causes and reasons across JWT claim-validation errors, and
make consumer-created multiple-match errors safely iterable. Add
compile-time coverage for the public type surface.
Signed-off-by: Filip Skokan <[email protected]>