The `fn io_other` disguises all sorts of errors as I/O errors, making errors in the transport component of `radicle-fetch` harder to understand. Instead, expose a new error type that allows to discriminate.