Tonic and Axum are quite closely related; From a tower perspective the
main difference is in the Error type in the body for their Response.
This refactor the code a little bit and add conversions from AuthError
to a tonic's Response such that the exact same code can be used by both
Axum and tonic services
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>