Bug 1089937 Add a fuzz time to end times for MSE reader switching on EOS r=karl,mattwoodrow

mLast{Audio,Video}Time differs from the actual end time because of
Bug 1065207 - the duration of a WebM fragment is an estimate not the
actual duration. In the case of audio time an example of where they
differ would be the actual sample duration being small but the
previous sample being large. The buffered end time uses that last
sample duration as an estimate of the end time duration giving an end
time that is greater than mLastAudioTime, which is the actual sample
end time.

Reader switching is based on the buffered end time though so we can't use
the actual sample end time for switching comparison.

For this reason we use the end time from the buffers to compare if we
should switch readers in this patch. We also add an EOS_FUZZ_US to allow
for the fact that it is an estimate and can differ slightly from actual times.

--HG--
extra : rebase_source : 47149609119c5dcd1ca7374501dd7c1e285469ef
bug 1096132 rename UnscaledAppUnitsPerDevPixel() to AppUnitsPerDevPixelAtUnitFullZoom() r=tn

--HG--
extra : rebase_source : 113b249f2cb6f1619e0b1a495655726b5100038b
bug 1096132 rename UpdateScaledAppUnits() to UpdateAppUnitsForFullZoom() r=tn

--HG--
extra : rebase_source : ec70af284ea91d28e6f66b487c7a543a1d93c7cc
bug 1096132 rename nsDeviceContext PixelScale to FullZoom r=tn

--HG--
extra : rebase_source : 06d57772b2dc04d606b3d98517085aeb817ae0e8
bug 1096131 clarify docs for LayoutDevicePixels and LayerPixels r=kats f=tn

--HG--
extra : rebase_source : c2e854a7af06abbfcd9bb95fef3ac241472b88b5