Document (somewhere) how all of high-level objects fit together, esp wrt Weak
This comes out of a discussion at !832 (comment 2851907).
We should have an architectural document that explains how a TorClient
's constituent parts, and the async tasks that make them run, are all fit together. We should explain why all of our Weak references are that way.