Document medium-scale design of key Tor abstractions
In between the specs and the doxygen documentation, there isn't much to explain why our subsystems work that way, how they fit together, and so on.
Some areas we should really elaborate are:
- circuits
- cmux
- circuitpathbias
- entrynodes
- channels
- the main event loop/connection abstraction
We should probably try to make it a practice to always document new things, and to fill in documentation for older things as we can. Whatever has changed most recently is probably going to be freshest on our minds, so let's start there.
I'm putting this in 0.2.??? as non-blocker, but we should try to get more stuff documented whenever the opportunity exists.