Cleanup and simplify the HLS Recorder.

(cherry picked from commit 208ad3145814d51f502c85d5dac007a3eee1e7c4)
MythDownloadManager has a memory leak, which can be terminal when used by

the HLS Recorder.  Add a simple MythSingleDownload class which uses
QNetworkAccessManager directly to avoid the leak, until it can be found and
fixed.

(cherry picked from commit 950a627790b8a044f10bfd9387f4528618acc6f0)
The classes defined in httplivestreambuffer.cpp were originally designed for

HLS playback, and are inefficient for recording.  Create a new
recorder-specific HLS processing class called HLSReader.  Since it is
specifically designed for recording, HLSReader is more efficient and faster.

(cherry picked from commit a212052e0184ec9a21771c6e49d4a80700aa0fc9)
Add missing 'class' to friend declaration.

(cherry picked from commit 1dd14eaa97f4fe0d5d6f04b1fb66cfb0b933399a)
Quiet some HLS logging

(cherry picked from commit 58c98b82938237a8ca36c767067616817ad9bdbc)
On some systems, usleep will fail with a value greater than 1000000-1.  Fix
HLSStreamHandler::run to not exceed 1000000-1.

(cherry picked from commit 3f31d6dbfa3dc68b1b7e436158ad684786ce7ea2)
Improve logging of playlist downloads

(cherry picked from commit 9e80571b52868ac4dc41c1c1dec63705042a67a6)
HLS: Reopen top level url, if playlist appears to be invalid.

(cherry picked from commit 8a3f4b614a82784bbcee5edbffd6518fbffbebdd)