Fix buffered range updates in media::Pipeline

Currently the buffered ranges reported by
media::Pipeline::GetBufferedTimeRanges may be out of sync with the
actually buffered ranges in the demuxer, since there's no way for a
demuxer to indicate that some time range got evicted (e.g. in MSE case).
This CL replaces media::Pipeline::AddBufferedTimeRange with
OnBufferedTimeRangesChanged method that allows demuxer to report
arbitrary changes in buffered ranges.

BUG=570514

Review URL: https://codereview.chromium.org/1526303004

Cr-Commit-Position: refs/heads/master@{#369585}
14 files changed