Fix MediaSource.duration setter behavior to match the current spec.

This change fixes non-compliant MSE behavior when the duration is set
to a smaller value. The spec calls for remove() to get called in this
case which wasn't happening before. This causes SourceBuffer.updating
to become true which prevents other operations like endOfStream() from
being allowed until the remove completes. Tests that relied on this
broken behavior have been updated.

BUG=381302

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

git-svn-id: svn://svn.chromium.org/blink/trunk@176373 bbb929c8-8fbe-4397-9dbb-9b2b20218538