* Bump minimum required Rust version to 1.40
Motivation for this change is use of `#[non_exhaustive]` attribute that
was stabilized in Rust 1.40.0
* Migrate benchmarks to criterion
Remove use of unstable features in favour of criterion benchmarks
* Enable clippy in Github Actions
* Fix clippy::manual_non_exhaustive
Remove manual implementations of the non-exhaustive pattern. Instead
use the `#[non_exhaustive]` attribute.
* Allow reexport of deprecated function
Silence rustc `deprecated` working in function reexport
* Remove redundant clone
* Fix various clippy warnings
* Remove redundant pattern
* Use `unreachable!()` to fail test
* No need to add `&` to all patterns
* Add quickcheck as test dependencie
* Use timestamp nanos
* Add test property for en/decoding
* Fix existing test
* Remove quickcheck dependency
* Normalize `DateTime` values in claims
Using `chrono`'s `serde` feature uses ISO 8601 instead of a Unix
timestamp as specified in RFC 7519 section 2, "NumericDate". This
example uses custom de/serialize functions as shown in the [serde.rs
example, "Custom Date
Format"](https://serde.rs/custom-date-format.html).
NOTE: Currently fractional values are not supported in the example,
though they are in the spec.