Fix incorrect usage of ScopedCallbackRunner.Reset().

ScopedCallbackRunner.Reset() was used in two places with
assumption it doesn't call current callback. Replaced Reset()
with ReplaceClosure() and RunAndReset() to make behavior clearer.

Review-Url: https://codereview.chromium.org/2094803005
Cr-Commit-Position: refs/heads/master@{#404277}
6 files changed