Custom header support
In service of #439
Adds support for custom headers via decode_with_custom_header to decode and validate JWT, and a standalone header-only decode via decode_custom_header. Those should probably have better names before this is merged. The existing decode and decode_header functions retain full backwards compatibility.
Also adds convenience macros for claims and custom headers, jsonwebtoken::macros::claims and jsonwebtoken::macros::header, and a Header derive macro.
Adds a BasicHeader to fulfill #439 (i.e. implement Hash). I have mixed feelings on that one. I think ideally extras wouldn't exist on the original Header struct, which was itself a breaking change (#420) due to removing the Hash implementation, but removing it now would be a breaking change. Given those constraints, adding a BasicHeader is the only path I could think of to resolve #439 and also to avoid the minor performance hit of using a HashMap (along w/ the inherent risk of a malicious user intentionally sending JWTs with abnormally large headers containing a large number fields).