Not done in this MR:
TorClient, which is otiose
I have tested this locally but I have not yet got the CI test to pass. I may need to iterate through the CI.
The branch structure ought to be explanatory and is probably best read commit-by-commit. If I need to rework it more than trivially, I may strip the
cargo fmt patch off the top, so that we can later squash fixups down.