Bug 1091008 - Fix bogus HasLowUndecodedData(mBufferingWait * USECS_PER_S) call and remove overload. v2

The units on this call don't make sense - mBufferingWait is supposed to be a
measure of how long we buffer, not how much data we want to buffer. And since
that member is generally 30 seconds, we're waiting for an enormous amount of
data here.
Bug 1091008 - Factor out IsDataCachedToEndOfResource() into a higher-level question and answer it sensibly for MSE. v1 r=cpearce
Bug 1091008 - Teach MediaDecoderReader about its start time. v2 r=cpearce

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 r=cpearce

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

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 r=cajbir
Bug 1091008 - Remove special handling for MSE in HTMLMediaElement::Buffered. v1 r=cajbir

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

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