Support multiple media tracks in MSE / ChunkDemuxer

This will also allow multiple audio/video SourceBuffers for a single
MediaSource. Note that for now we'll still only select/play the first
audio and video track by default. Switching between tracks will require
further work in media renderers. A few notes:
Most of the changes are straightforward, except media_source_state.*
In order to allow multiple tracks in a single SourceBuffer, we'll now
pass the codecs parameter from WSBI further down to ChunkDemuxer and
MediaSourceState, replacing the old has_audio/has_video flags.
The new MSS::OnNewConfigs structure is much closer to the MSE init
segment handling algorithm, with essentially the same logic for
handling new/existing track ids and such.

BUG=487288

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