First cut at a circuit launcher for onion services
This branch adds:
- The ability for CircMgr to launch an unmanaged circuit.
- New circuit purposes for "the first 3 hops of an onion service circuit".
- An HsCircPool type to handle preemptively creating a bunch of 3-hop circuits, and extending them to their 4th hops as needed.
- A huge pile of TODO comments about issues to fix up... later, I hope.
I'd like guidance from the reviewer about which (if any) TODOs are must-fix-before-merge, and suggestions about testing strategy here.
Implements #691 (closed).