Reduce CPU usage while waiting for seek to complete
Allows RemoteFile to recover from connection drop or timeout

From time to time, for some users reading from the controlSocket times out, which cause the connection to be dropped. This change allows to recover from this situation

Ref #12113
Reset failures count once a read succeed

The failure counter was for the entire playback’s duration. So should more than 5 read failures occurred, regardless of time, playback would have been interrupted.
As soon as a read succeed, reset the failure count to 0.

Ref #12113
Have RemoteFile attempt to fully reconnect in case of errors
Prevent crash should playback fail after ringbuffer has been destroyed
Don’t prevent read should we reached EOF or an error

Prevented to play the last few seconds of a recording.
Pause playback rather than exiting should backend stop responding or is stopped.

This allow to resume playback right after the backend is restarted.
there’s still an issue if you attempt to seek within the file while the backend is stopped. It will cause FFmpeg to reset the buffer and cause an eof situation, which isn’t recoverable.