Fix crashes when pressing menu key during channel change

There’s a short amount of time when changing channel during which there are no video output defined.
Add ReadInternalMode to RingBuffer class

This mode allows to limit the content of the ringbuffer to the content already loaded. Seeking, reading and other operations will not be destructive.
This allows for almost instantaneous streams and bitrate detection.

Duration calculated will obviously be wrong, but as the duration is stored in the DB we’ll use that duration instead anyway, meaning we only have to worry about streams detection itself.

This greatly speed up liveTV transition change and playback startup
Try to open the media for 1.5s, using only the internal data in ringbuffer.

After this, we revert to the previous detection methods. In practice it should never happen