Simplify choosing exits.
Add failure event handlers
Add circuit failure errors
Use a single TorCircuitContextFactory
Refactor SingleExitStreamAttacher
Add Circuit and Stream failure types