Revert "Allow partial reads"

This causes a regression during LiveTV program transition

This reverts commit 13845afd923f2706134424b2e458d02c89ab5d83.
Allow partial reads

Traditionally we've always had RingBuffer::Read() return the number of bytes requested unless we are at the end of the file. But this blocks libav which expects the read to complete fairly quickly even if it is a blocking read. Instead we should block for only a short time waiting for more data and then return what data we do have as long as we have at least 1 byte of data.

Based on a patch by DanielK
Fixes #12179
Ref #10658
Increase myth:// filetransfer timeout values.

Also reset attempts count once it successfully transfer data
Prevent crash opening audio settings page when invalid device is retrieved
Abort early when trying to open a 0 bytes file size if it’s not being written to

This could cause a 10s delay liveTV startup as backend attempts to open the first dummy recording
Stop readahead thread if the file isn’t opened.

No point trying to read from the file when there’s nothing to read
Fix small leak should a ringbuffer not be created successfully.
Fix dummy recording file sometimes not being deleted

This sometimes occurred at the start of LiveTV, causing a 0 byte recording that will never get deleted (and cause the frontend to keep trying to open recording for 10s)
Return an error when the file couldn’t be successfully opened

Otherwise it just cause the created ringbuffer to keep reading the file over and over