Draft: arti: Support reconfiguration of services and implement for SOCKS

Open Ian Jackson requested to merge Diziet/arti:proxies into main

Not done in this MR:

  • The DNS code needs to use the new trait
  • Often we pass a runtime as well as a TorClient, which is otiose
  • Right now the configuration watch machinery is not reuseable in something that wraps ArtiConfig.

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.

Merge request reports