Use backoff for timing when predicted circuit building fails.
Right now our predicted circuit building retries on a the same aggressive schedule whether we're successfully connecting or not. Instead, it would be better if we used
RetryDelay to back off in the event of errors.
It would also be neat if we rescheduled our attempts when circuits become dirty, so that we don't have to use such an aggressive timer.
We could handle both of these issues using
Part of #329 (closed).