Bug 1090991 - Introduce a new NotDecodedReason WAITING_FOR_DATA and use it for MSE. v3 r=cpearce
Bug 1091008 - Discard mCurrentDecoder in TrackBuffer::Shutdown. v1

Otherwise, we end up with a subsequent call to DiscardDecoder() which crashes,
because mParentDecoder (and thus its monitor) is null.
Bug 1091008 - Factor out IsDataCachedToEndOfResource() into a higher-level question and answer it sensibly for MSE. v1
Bug 1091008 - Teach MediaDecoderReader about its start time. v2

Duplicating state is never great, but this lets the reader make calculations
using this immutable state variable without involving the state machine. We
could alternatively punch a hole from MediaDecoderReader to
MediaDecoderStateMachine and access it there, but that would create tighter
coupling, and weird relationships for MSE.
Bug 1091008 - Remove the aStartTime argument from MediaDecoderReader::GetBuffered. v1

We now have this stashed on the superclass.
Bug 1091008 - Hoist stream pinning into the MediaDecoderReaders and make MediaDecoderStateMachine::GetBuffered just forward to them. v1

Whether or not we ping a stream depends a lot on what kind of decoder we're
dealing with. In particular, it doesn't really make sense for MSE.
Bug 1091008 - Implement a sensible GetBuffered override for MediaSourceReader using the existing GetBuffered on MediaSource. v1
Bug 1091008 - Remove special handling for MSE in HTMLMediaElement::Buffered. v1

The same code will now be reached by invoking this method on the decoder.
Bug 1091008 - Reimplement HasLowUndecodedData in terms of GetBuffered. v1

Since GetBuffered now has a sane implementation for MSE, this should
make this function sane for MSE as well.
Bug 1063323 - Tests. v1