Reduce the number of calls to external estimate provider

Currently, the External Estimate Provider (EEP) may get
called multiple times per connection change. This CL ensures
that EEP is called exactly once per connection change.

This CL also updates the callback to UpdatedEstimateDelegate.
The callback now contains the updated estimates. This means
that the delegate does not have to query for those estimates
on receiving the callback. It makes the logic easier to
understand.

BUG=604417

Review-Url: https://codereview.chromium.org/2010003002
Cr-Commit-Position: refs/heads/master@{#396938}
7 files changed