This commit introduces the ability to dynamically select a TLS
configuration based on the client's TLS hello via the new `Resolver`
trait. In support of this, it also makes the following changes:
* Added `Authority::set_port()`.
* `UdsListener` is now `UnixListener`.
* `Bindable` removed in favor of new `Bind`.
* All built-in listeners now implement `Bind<&Rocket>`.
* `Connection` requires `AsyncRead + AsyncWrite`.
* The `Debug` impl for `Endpoint` displays the underlying address.
* `Listener` must be `Sized`.
* The TLS listener was moved to `tls::TlsListener`.
* The preview `quic` listener no longer implements `Listener`.
* Added `TlsConfig::server_config()`.
* Added `race` future helpers.
* Added `Rocket::launch_with()`, `Rocket::bind_launch()`.
* Added a default `client.pem` to the TLS example.
* Various unnecessary listener `Config` structures removed.
In addition, the testbench was revamped to support more scenarios. This
resulted in the following issues being found and fixed:
* Fix an issue where the logger would ignore color requests.
* Clarified docs for `mtls::Certificate` guard.
* Improved error messages on listener misconfiguration.
Resolves#2730.
Resolves#2363.
Closes#2748.
Closes#2683.
Closes#2577.