Add support for cancellation of demuxer reads.

This speeds up seek and suspend significantly in the case of a hung
read; on slow networks this may shave hundreds of milliseconds or more
off the seek and suspend times.

Notably this also resolves a CHECK() crash for overlapping reads
by aborting any existing reads when a new read comes in.

Note: Also removes some log spam from canceled reads / tests.

BUG=165762,638018
TEST=manual, new unittests

Review-Url: https://codereview.chromium.org/2267963002
Cr-Commit-Position: refs/heads/master@{#415401}
23 files changed