* Introduce the `VersionInfo` struct, build from the vergen environment
variables
* Add the `version` handler to construct and return the version info
* Update the README
* The map endpoints return an HTTP 404 error in case of unknown or
out-of-bound locations
* The forecast endpoint with an address returns an HTTP 404 with error
JSON in case geocoding fails
* The forecast endpoints return the errors per metric in the `errors`
field of the forecast
* Implement `Display` for `Metric`
* Use a `BTreeMap` to have an ordered `errors` field/object
* Also log the errors to the console
* Update the tests
* Document the errors that can occur
* Make the combined provider keep track of the AQI and pollen maximum
value
* Extend the `Forecast` struct with the `aqi_max` and `pollen_max`
fields
* Fill the `aqi_max` and `pollen_max` fields when the PAQI metric is
selected
* Update the documentation
* Extend the tests
This way we can build Rockets from outside the crate and run benchmarks,
for example.
* Add top-level `setup()` function to create a Rocket and set up the
maps refresher task
* Change the type of `maps::run` since `!` is still an unstable type
* Fix HTTP code blocks in `README.md` so they don't appear as doctests
to rustdoc