arti-relay: add and use `Error`/`ErrorDetail`
Most of this is copied from arti_client::err
, but with a lot of stuff removed to simplify the error types (for example no error_detail
feature handling). I tried to keep things generally consistent with arti-client so that error handling will be similar in both crates.
TorRelayBuilder::create()
will likely need to be fallible in the future (for example if spawning a task for the OR port listener fails), so it now returns a Result<TorRelay, crate::err::Error>
instead of just a TorRelay
.
Also makes a small grammar fix to documentation in arti-client.
Edited by opara