MythMusic: Fix out of bounds array access in spectrum visualizer

NB This was the cause of the 'sticky bars' often seen with this visualiser.

Signed-off-by: Paul Harrison <pharrison@mythtv.org>
UK EIT fixup. Set category_type to movie where the event category starts with 'Movie' or 'Film'
UPnP: Refactor various parts of the code

The way we build the object tree has changed allowing for a tree depth
greater than one. e.g. Genre > Artist > Album > Tracks.

The number of queries required to build results has been significantly
reduced which should improve response times.

XBox and WMP 11 specific hacks have been disabled. In part to allow
users of these systems to test new UPnP behaviour, but also because
these non-upnp compliant bits need better segregation from
the core code.

Searching and sorting has been disabled because the existing
implementation was incomplete and broken. This will be finished and
re-enabled soon.

There will be bugs, if you absolutely depend upon UPnP then please hold off
updating for a little so I can fix issues found by wider testing. Of
course if nobody tests UPnP then issues won't get found ...
UPnP: Disable the mixing of genres and videos in the Video 'Movie' view. Not sure it really works and there's a bug in the totals count anyway.
Alter the schema of the unused recordedfile table. Use recordedid instead of chanid/starttime, change the names of two columns for clarity.
MythMusic: Add a simple ASX playlist parser
Disable code which used recordedfile for now until it can be ported to use recordedid instead of chanid/startime.
UPnP: Complete support for BrowseMetadata mode. (Untested)
Avoid calling QFile::exists() on an empty string.
UPnP: Fix filter support.
UPnP: Pushed 3bbab402 too early before I'd finished testing.
UPnP: Expand on the comments about UPnP filtering as it's useful to have this information inline with the code where it's put into practice.
Fix errors when loading music album art.

Use RemoteFile::exists() instead of FindFile, it's more appropriate
here and faster.

StorageGroup expects a hostname not an IP address, pass the hostname instead.
Fix FindFile/FindFileLists using SendRecieveStringList() when accessed on Master Backend
More accurate error message when an IP is passed to GetBackendServerIP() instead of a hostname
Fix more IP vs hostname confusion in myth:// urls

A myth url consists of <group>@<hostname>:<port> where <hostname> is
the unique identifier of a backend, NOT an IP address. Some code
rightly expects to be able to extract the hostname from the URL and
use it as the unique identifier, for example to StorageGroup() or as a
key for DB lookups. The places where an IP was used broke this
assumption and caused the code to take an extended route to complete
it's task, or caused failures.

The 'hostname' will be converted to an IP address only at the point
where we connect to the remote backend to transfer/delete/etc the
file. Since only mythtv is expected to handle myth:// urls this is OK.

Since this has been causing confusion for some time there may be parts
of the code that incorrectly expect an IP address which will have to
be fixed.
Revert "HDHomeRun: Fix compilation on fedora 20"

This reverts commit 6c75467ac8d6f32874fd703b8e10b7d1127cade0.

Not needed as correct fix is in configure
Fix configure after the ffmpeg merge.
Resolves f20-qt5 compilation
UPnP: Add support for GetFeatureList() and GetServiceResetToken().

We don't yet support any features so we return an empty result.

For the ResetToken I used the date at the point the MediaServer was
started as it fits the critera of being unique (never repeating) and
it will change when the backend restarts (internal state is lost).
UPnP: Implement the CONTAINER_SHORTCUT feature.