Audit lifetime and locking code in tor-proto
I'd like to make sure that it's pretty well documented how streams, circuits and channels are created and destroyed, and how we make sure that errors are registered as appropriate with them.
I'd like to document who owns what, and make sure all the relationships are reasonable.
While I'm auditing and documenting this, I want to document all of our locking code and all of our
.awaits to make sure that it's documented who locks what when, and how we prevent deadlocks.