Release 3.7.0


* Implement `Clone` for `Error` and `fdo::Error`.
* Add `MatchRule::matches` to check if a `MatchRule` matches a `Message`.
* Add `{MessageStream, blocking::MessageIterator}::for_match_rule` to create a stream that only
  yields messages that match a `MatchRule`. This allows for efficient filtering of messages and
  avoids unnecessary task wakeups. `{SignalStream, blocking::SignalIterator}`, `ObjectServer` and
  method calls make use of this API internally.
* Introduce `Error::InputOutput(Arc<..>)` and deprecated `Error::Io` in favour of it.
* Add a generic `Error::Failure` variant.
* Add `ConnectionBuilder::unique_name`. This is meant for bus implementations to allow them to set
  a unique_name before all other initialisations happen. For one, this would allow `ObjectServer`
  to be able to filter messages to the bus itself.
* Implement `From<&MessageStream>` for `Connection`.


* Ensure all streams get the errors from reading the socket, not just one of them.
* Many other minor and internal improvements and fixes.

Dependencies changed

* Drop `async-channel` dependency.
* Bump requirements:
  * `quick-xml` 0.27.1.
  * `zvariant` 2.10.
  * `zbus_names` 2.5.
  * `async-io` 1.12.0.
  * `async-executor` 1.5.0.
  * `async-broadcast` 0.5.0.
  * `ordered-stream` 0.1.3.