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 MediaDecoder::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