Improve handling of invalid responses from TMDB

When an HTML error is received from the TMDB API, this will now attempt
to process a specific error type from the returned JSON.  If no error
type is given, or the resposnse was not JSON, it will raise the previous
TMDBHTTPError.
Clean up __repr__ methods, and impose soft 80-character line limit.
Add method to search for movies similar to current.
Mark 'mythshutdown -l' as specifically removed with alternate argument
No sense leaving the other parameter in if its just getting ignored.
HTTP Live Streaming fixes in AVFormatWriter

- Fix HLS encoding after the ffmpeg sync.
- Guestimate the h264 encoding level based on the requested frame size
- Don't set FF_PROFILE_AAC_MAIN when using AAC encoding in AVFormatWriter
HTTP Live Streaming fix

Put a comma after the duration on the EXTINF tag per the IETF spec.

Refs #10729.
Squelch an "unused variable" warning.
Remove path names from HLS playlist entries.

The spec does not require path names, so remove them so that all files
are found relative to the playlist itself.  The path was only originally
supplied in the playlist due to the fact that we had to use URIs of
the form /Content/GetFile?StorageGroup=blah&FileName=bleh.  Now that
we can use /StorageGroup/blah/bleh we no longer need to use paths in
the files since clients can follow the new URI format.
Add line to allow testing of AAC encoding via libfaac.

Using native aac support will require converting audio to floats,
so put in a comment letting users enable AAC encoding for now if
they want to test AAC.

libfaac seems to work fine for generating streams playable on my iOS
devices and Roku player.
Subtitles: Make the subtitle zoom factor into a live setting.

OSDCC708TextZoom is removed from the frontend OSD setup screen and
added as a "live setting" to the Subtitles menu of the playback OSD.
This brings up an adjustment dialog similar to adjusting audio sync or
timestretch.

The menu item is only offered when subtitles are currently enabled.

For text and CEA-708 subtitles, adjustments take effect immediately.
For CEA-608, the adjustment takes effect only when the next caption is
displayed, due to the way the 608 reader is structured.

For now, only the Subtitles menu entry is provided, but if needed, it
would be practical to add a wider set of actions and keybindings to
match the implementation of audio sync and timestretch adjustment.
Remove unused arguments from TV::UpdateOSDStatus().

The default-valued "next" and "prev" arguments are never deliberately
set, and were actually getting in the way of the "timeout" argument.
Add HTTP Live Streaming playback

This add full support for HTTP Live Streaming playback as per http://tools.ietf.org/html/draft-pantos-http-live-streaming-04.
This includes:
- Automatic fallback to lower bandwidth streams if available, the changeover will be detected according to the network bandwidth
- Full support for live streaming
- Seek support for video on demand stream

There are few problems remaining however:
-When switching to a different stream that is of a different resolution, playback will usually fail. Detection for format change should be added to myth player
-When seeking with values over 2 minutes, sometimes the player will fail, detecting an EOF. No idea why.
-For VOD streams, the whole downloaded content is buffered in RAM, this could get huge (as big as the file being streamed). Caching to disk should be implemented

Playback of AES-128 encrypted content hasn't been tested; retrieval of the key will only work from publicly accessible web site defeating the whole purpose of encryption
Make HLS AES-128 support conditional on libcrypto being installed
Make HLS AES-128 support conditional on libcrypto being installed

minor code cleanup...
Reorganise libmythtv, creating a DVD, Bluray and HLS sub-folder and moving their respective related code into them.

Way too many files in libmythtv, getting lost...
Long way to go...
Hopefully fix Windows build

seems like it only ever build based on the order it was linked in libmythtv.
Revert "Hopefully fix Windows build"

This reverts commit dad31ccd85de9d372031016cb48bfa227d678f5f.
Hopefully fix Windows build #2
libmythbluray depends on libxml, yet it's not linked against it.
Hopefully fix Windows build #2

Core issue is that libmythbluray depends on libxml2 ; so it will only link properly if myth was compiled with libxml2. Yet there are no dependencies defined.
Re-order the libs so they are listed at the end of the linker command