Revert of MSE: Relax the 'media segment must begin with keyframe' requirement (patchset #13 id:240001 of https://codereview.chromium.org/1091293005/ )

Reason for revert:
Two regressions:
BUG=581125,581458

The latter causes NFLX playback stall. Reverting to fix canary, even if the latter's eventual fix might be external (e.g. NFLX web app).

To allow revert to currently failing code format rules:
NOPRESUBMIT=true

Original issue's description:
> MSE: Relax the 'media segment must begin with keyframe' requirement
>
> The current version of the MSE spec no longer requires that media segments
> start with a keyframe. This change reworks the MSE implementation
> so that it now allows tracks within media segments to not begin
> with a keyframe.
>
> To accomplish this requirement's relaxation, this CL:
> 1) Separates media segment signaling from coded frame group signaling:
>    MSE stream parsers need to report whether or not they are currently
>    in the middle of parsing a media segment, such as a WebM cluster, to
>    comply with spec disallowance of certain operations like changing
>    SourceBuffer appendMode when appendState is PARSING_MEDIA_SEGMENT.
>    However, SourceBufferStream only needs to be signaled when a new coded
>    frame group is beginning, for example when buffers are appended
>    following a discontinuity.
> 2) Since the FrameProcessor now can transitively signal SourceBufferStreams
>    when a new coded frame group is beginning (which might span multiple
>    media segments), the SourceBufferStream can rely upon the fact
>    that the next buffer appended must be a keyframe if it's been told
>    that a new coded frame group is starting. A CHECK() is included.
> 3) New ChunkDemuxerTests.
> 4) Various test cleanup to conform to the distinct "new coded frame group"
>    and "new media segment" signaling separation, as well as removal
>    of decode error verification when a media segment doesn't begin
>    with a keyframe.
>
> Note that the FrameProcessor already drops non-keyframes prior to the
> first keyframe processed for a track following a discontinuity,
> and the SourceBufferStream already drops non-keyframes prior to the
> first keyframe processed for a track following a range removal that
> removed the last appended position in the current coded frame group.
>
> BUG=229412,459546
> R=chcunningham@chromium.org
> TEST=Updated ChunkDemuxerTests, SourceBufferStreamTests,
> FrameProcessorTests. Also locally tested: bug 459546's
> original report no longer fails. A sample webm VP9 file
> from b/26524063 no longer fails. GPM webm vp9/opus test no
> longer fails. Bug 518854's original report's "flags_all.mp4"
> no longer fails.
>
> Committed: https://crrev.com/3d152e528e97024860822d3e75109c0c597bf4de
> Cr-Commit-Position: refs/heads/master@{#371018}

TBR=chcunningham@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=229412,459546

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

Cr-Commit-Position: refs/heads/master@{#371686}
13 files changed