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.
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
MythMusic: Pass the full filename to TagExists() in Metadata::getTagger()

This fixes a bug when reading the metadata from flac files with ID3 tags.
(cherry picked from commit 459e806faf5fe60adbfa42f22f1f1ceddafd56e3)

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MythMusic: Remove some no longer used key bindings
(cherry picked from commit ea7a0b8faf662cf0a8355362299b40a52c29aaad)

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MythMusic: Add keybindings to jump to all the views

This adds some SWITCHTO* keybindings in the Music context that allows you to
define keys that will switch to the chosen view rather than having to use the
menu. All are unbound by default.
(cherry picked from commit 0f1c4bffcd0c1e7c5b37621d72b81ee7f1b24683)

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MythMusic: Add TOGGLESHUFFLE and TOGGLEREPEAT keybindings
(cherry picked from commit 91e7b1d47be84d0d9aab6476c5a4923e400e5b8e)

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MythMusic: Make 'All Tracks' add all the tracks to the playlist

On the playlist editor screen selecting the 'All tracks' node will add all the
tracks below it to the playlist.
(cherry picked from commit 6c6b4b89bf7d76ea188393b440bca0a89ee50b53)

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MythMusic: Add directory browsing to the playlist editor

This adds a 'Directory' node to the playlist editor so you can browse for
tracks by file path. Selecting a node will add all the tracks below it to the
playlist.
(cherry picked from commit d7fcd89a481d947cce93dea10dac9505f5d40651)

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MythMusic: Add the missing mm_directory.png

This adds the icon required by the new directory browsing in the playlist
editor gallery view.
(cherry picked from commit 3b4cf746faf98e07894a29172b1ddc9153161800)

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
Rework RecorderBase::AspectChange() so it can't cause divide by zero.

Conflicts:

	mythtv/libs/libmythtv/recorderbase.cpp
Add missing break statement in PlaybackBox::ShowAvailabilityPopup(). Caught by Coverity.
Fix assumption that ints would be initialised to zero in JobQueueEntry, this isn't the case with C++. It appears that this would have caused any job that didn't include a chanid to abort even though the code indicates that it's perfectly valid to have a job which doesn't operate on a recording and wouldn't require the chanid. I don't know enough about the intended behaviour to say whether this will fix a user-visible bug ... Discovered by Coverity.