Implement full circuit-build-timeout logic
Tor has a complicated set of logic that measures how long circuits take to build, and then adjusts Tor's time-out requirements accordingly. This is important for performance (and possibily security) properties.
- 
Basic pareto estimator backend 
- 
Set parameters from consensus 
- 
Record measurements from circuits as they are built. 
- 
Record timeouts from circuits as they time out. 
- 
Compute circuit timeouts correctly, given different circuit lengths. 
- 
Actually use timeout estimates to decide when to timeout/abandon a circuit. 
- 
Use correct "doubling" algorithm from path-spec 2.4.5. 
- 
Break histogram-bin ties correctly. 
- 
Make sure all consensus paremeters are implemented. 
- 
Ability to switch (or reconfigure) estimators while running 
- 
Actually use pareto estimator 
- 
Testing. 
These are a bit tricky and will want to be separate tickets:
- #142 (closed): Add a function to tell us when we last saw incoming network activity.
- #143 (closed): Persistence for build-time data
- #144 (closed): Get notification about changes in network parameters.
- #145 (closed): Launch testing circuits as needed.
Edited  by Nick Mathewson