Improved handling for retriable errors in circmgr
This branch introduces new types in tor-error
to handle the notion of deciding when to retry a failure. It uses those types in chanmgr, guardmgr, and circmgr, to improve the decision-making around retrying failed circuits, to give better results for #329 (closed).
Some of the logic for handling aggregate errors is a big yucky; suggested improvements would be welcome.
Along the way, this branch incidentally fixes #421 (closed) and #427 (closed), and improves logging for different kinds of circuit failures.