Prevent requests from hanging when shutting down a connection

When closing a connection (either due to an error or simply because the
user wanted to), we will now  *take* `response_channels` as opposed to
clearing them. This ensures that `Peer::request` can't succeed in both
adding the oneshot channel in `response_channels` map _and_ submit the
message onto the `outgoing_tx` channel.

This also streamlines how we close a connection by unifying all the exit
code paths of the IO handling future.
6b0ed820bfAntonio Scandurra committed on 9/23/2021, 2:35:40 PMparentc70b4a9
1 file changedLine totals unavailable