SendReceiveStringList: handle the UNKNOWN_COMMAND response properly

Change it to return false and log the error rather than return true
and carry on as though nothing is wrong.

This should never happen in reality but if it does SendReceiveStringList
should not return true and carry on as normal since we don't handle that
well in a lot of places.
corecontext: Add IsThisBackend API

Will determine if we are a backend, and we are the requested host
remotefile: use IsThisBackend API

We really want each backend to look after the hostname they are managing, and not forward everything through the master backend.
MainServer: send an ERROR response back for malformed commands

The protocol server was not sending any response back for any bad commands
received such as commands with an invalid number of parameters. This caused
any client to wait for a reply which would never come. The FE for example
would lock up for 30 seconds waiting for a reply if SendReceiveStringList()
was called from the UI thread.
Use channel_timeout to set a Start Recording Deadline, after which the

recording will be marked as failed, so it can be rescheduled.

Generate a "Recording failing" system event to allow an external app to
reset the capture device, and keep trying to record until end of the
schedule.

    When the recording works as planned:
      1. Recording is started == rsTuning
      2. We get a signal      == rsRecording
      3. Recording finished   == rsRecorded

    When the signal is delayed (exceeds channel_timeout)
      1. Recording is started == rsTuning
      2. mythconverg.cardinput.channel_timeout reached == rsFailing
      4. Recording finished   == rsFailed
Check isDamaged on every gap update.  If there has been too much damage, set rsFailing.
Break the dependence of MythGenericTree on MythUIButtonList, this should never have happened as GenericTree was supposed to be exactly that, generic.
Remove executable bit from source files
RemoteFile: add some additional logging to CopyFile()
MainServer: add a QUERY_FINDFILE command to the protocol

This command will search a storage group on a host for a file and return the
myth url's of any matching file(s) or 'NOT_FOUND' if nothing was found.

The filename can be a regular filename like 'front.jpg' or a regexp like
'front.(jpg|jpeg|png|gif)'.

If allowfallback is '0' only the given host is searched otherwise all hosts
will be searched until a match is found or there is an error.

The format of the command is:
QUERY_FINDFILE <host> <storagegroup> <filename> <useregex (optional)> <allowfallback (optional)>

NOTE: bumps the myth protocol version so all backends and frontends need to be
updated.
RemoteFile: add FindFileList which uses the new QUERY_FINDFILE command

This adds a new FindFileList() function which will find a list of files
matching the given filename (which can be a regexp) in a given storage group
and on a specific host.

Update FindFile() to use FindFileList() and will return the first match found.

NOTE: bumps the ABI version.
MythMusic: update findIcon() to use a regexp to find the icon

This speeds up looking for an icon by replacing four lookups with a single one
using a regexp to find matching icons.
UPnP: Fix repeated error in mime/dlna profile strings, JPG should be JPEG. Refs #12202
Revert [47fe99a14b] as it broke part of mythmusic, may retry this at a later date. This keeps the header changes to the gallery code as those were still necessary.
MainServer: use gCoreContext->IsThisHost(hostname) to check the host

This uses IsThisHost() to check if the music commands should be run on the
master or passed to a slave for processing. This is more robust since it
checks both the IP address and host name for a match.
Add ability to use MythNotification from backend.
Fix padding in TeletextDesecriptor::toString()
Initial implementation of MPEGDescriptor::hexdump()
MPEGDescriptor::hexdump convert QChar to simple uint
Add Q_ENUM support to wsdl/xsd generation.
First step of adding advanced support for enums to the service API