Some of our `Error` are rather large

nightly clippy is printing a lot of messages like this:

   --> crates/tor-chanmgr/src/mgr/map.rs:320:75
    |
320 |     pub(crate) fn change_state<F, V>(&self, ident: &C::Ident, func: F) -> Result<V>
    |                                                                           ^^^^^^^^^ the `Err`-variant is at least 168 bytes

This will be slowing things down needlessly. I suggest the starting point would be to identify the larger "leaf error" variants, and do something about them. If that isn't sufficient we could look at making error variants which contain errors box their contents, or something.