Add more debug logs in the DataDirect and MythDLMgr code

Refs #10662

Turns out the problem we are seeing is a known bug in Qt 4.7.1 that is fixed
in 4.7.2 (and wasn't there before 4.7.1).

In particular, if your Schedules Direct username is an email address, Qt4.7.1
stupidly puts the username as the part before the @ and the realm as the
portion after the @, even though the realm was already provided.

SO, if you have a Schedules Direct username that is an email address, either
upgrade to 4.7.2 (or higher), or downgrade to 4.7.0 (or lower).
Almost complete rewrite of RAOP server

Let me commend Mark Kendall for his previous implementation. As far as I could tell, his RAOP server was the only one implementing Airtunes v2 functionalities with a/v sync timestamps.
The rewrite serves several purposes. Mainly, I wanted to take ownership of this area of the code, and there were things I couldn't figure out. Most likely because whatever Mark used for AirPort's technical documentation isn't what I got.
Technical description of RAOP came mostly from:
-http://git.zx2c4.com/Airtunes2/about
-http://blog.technologeek.org/airtunes-v2

I found the later to be the most correct.

Main area of focus:
-Audio Quality: Over slow or poor network connectivity (e.g. slow wireless) and with lots of packet drops: audio would have been corrupted (the system played audio packets in the order they were received, and not in the order they were supposed to be). For testing purposes, I simulated a 30% packet drop, and playback remained perfect.
-A/V Sync: Achieving perfect A/V sync across all platforms and with all the different type of audio architecture is almost impossible. However, I believe the results achieved are very good. Playback will automatically adjust itself according to the network latency and the audio hardware latency.

New features:
We now retrieve the media's metadata: Album name, artist name, song title and coverart. This only works when using iTunes. iOS device do not send metadata unless using FairPlay encryption. We only support RSA encryption.
Currently, this information is only shown in the logs, but in the future we'll be able to nicely show them in mythfrontend.

Additional credits:
-http://nto.github.com/AirPlay.html, gave information about how to configure Bonjour in order to receive MetaData from iTunes
-http://code.google.com/p/ytrack/wiki/DMAP : iTunes DMAP metadata structure
Add two network utility methods to ServerPool

Add tryListeningPort and tryBindingPort ; those methods are used to bind/listen on all local interfaces, both IPv6 and IPv4.
Add them to ServerPool class as they add functionality to it, but they do not change its functionality and how by default it binds on interfaces by looping individually through all of the.
They will be use for local services that are discovered through Bonjour.
Add full IPv6 support to RAOP and fix Bonjour discovery of RAOP service.

Previously, what hostname Bonjour used to advertise a service was a bit of a mystery. If IPv6 was available , it could very well advertise an hostname resolving as IPv6 or use a link-local address. This cause the service to be visible on client (here iTunes), but it wouldn't have worked.
We know listen on all local interfaces, IPv6 and IPv4.
Also, do not advertise RAOP via Bonjour, if listening on the local interfaces failed
Revert "Add ability to override Bonjour's service name."

This reverts commit 48d84958a93e94e97591f0f239902fecfca8607f.

Now that the issue is properly fixed by using db30e6eaad92d067a84314d43f912f57e4d89465, revert it
Bypass aborts resulting from attempting to process empty strings.
Use `date` type rather than `datetime` for 'releasedate attribute'.
Merge commit '5b86d8bb95c69205d8669bb23c30ccd6b8514c4b'
Correct file cache error handling to ignore rather than raise errors.
Merge commit '27dff377fe6612b870a4cf28b9c058567be1a3bb'
Assorted fixes and emable tmdb3.py metadata grabber.

This enables the new grabber for version 3 of TheMovieDb API. This is
still in debugging, and some additional work needs to be done with
regards to the cache engine and query rate limiting before it gets
pushed as the primary.
Fixes #10668. Fixes segfault in mythtranscode use of DTVRecorder.

This was discovered and diagnosed by Chris Tracy <mythtv@adiemus.org>.

The problem is a debugging macro that assumes the recorder is being controlled by TVRec.
Revert "Add full IPv6 support to RAOP and fix Bonjour discovery of RAOP service."

This reverts commit 662728fe7a6a45127664b9af042c4802b7487507.
Fix handling of IPv6 link-local address

ServerPool previously couldn't use IPv6 link-local addresses.
Also, fix the issue where no messages could be received on UDP bound sockets initiated from ServerPool
Add two network utility methods to ServerPool

Will be used by Airplay and RAOP
Add full IPv6 support to RAOP and fix Bonjour discovery of RAOP service.

Do not advertise RAOP via Bonjour, if listening on the local interfaces failed
Use `date` rather than `datetime` for storing dates.
Merge commit 'c2ef5d143f1bfc9931ef9f7487fda3b93780fe8f'
Provide GetNodeValue(.. const char*) implementation.

When GetNodeValue is called with a C string as the default value,
the value is promoted to an int not a QString() leading to
unintended results.
Subtitles: Allow the theme to customize caption/subtitle formatting.

Subtitle format specification, e.g. the choice of font and background,
is moved into the theme's osd_subtitle.xml file, in the osd_subtitle
window.  Separate controls are given for text, teletext, CEA-608, and
the 8 CEA-708 fonts.

Subtitle types are named text, teletext, 608, 708_0, 708_1, ...,
708_7.  Each subtitle type has a fontdef component for the text and a
shape component for the background.  By default, the attributes of a
subtitle type come from either the provider (e.g. text color, italics)
or the system default (e.g. font family).  These attributes can be
overridden by the xml file.

The names of the fontdef and the background shape are both simply the
name of the subtitle type.  The fontdef and shape should ultimately
inherit from the special value "provider", otherwise all provider
values will be ignored.

The following example forces .srt subtitles to be rendered in
yellow text, FreeSans font, black shadow, with a translucent black
background.  The fontdef and shape names are "text" since the
subtitles come from a .srt file.  Note that in this example, color
formatting controls in the .srt file will be ignored due to the
explicit setting of yellow text.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mythuitheme SYSTEM "http://www.mythtv.org/schema/mythuitheme.dtd">
<mythuitheme>
  <window name="osd_subtitle">
    <fontdef name="text" face="FreeSans" from="provider">
      <color>#FFFF00</color>
      <shadowoffset>2,2</shadowoffset>
      <shadowcolor>#000000</shadowcolor>
    </fontdef>
    <shape name="text" from="provider">
      <fill color="#000000" alpha="100" />
    </shape>
  </window>
</mythuitheme>

The settings CCBackground and DefaultSubtitleFont are no longer
necessary and have been removed.

Teletext does not yet use this mechanism, but some temporary code
allows the teletext font to be taken from osd_subtitle.xml rather than
the DefaultSubtitleFont setting.  Note that as before, the frontend
must be restarted for teletext font changes to take effect (this will
be fixed in the future).

All elements/attributes of fontdef and shape can be used.  Note
however that area and position are explicitly ignored, as these are
dictated by the subtitle layout.

The default values for the specific fonts are kept unchanged from the
original code (except that a proportional font is now used for text
subtitles).  Note that some of these fonts, particularly many of the
CEA-708 fonts, were somewhat arbitrarily chosen and aren't necessarily
present on the user's system, so we will need to settle on the precise
set of fonts and likely include them in the MythTV fonts directory.

These changes are implemented with almost no MythUI modifications (the
only such change is to make the new helper class a friend of
MythUIShape in order to get access to some protected members).  The
basic idea is to construct two different "provider" objects; then
parse osd_subtitle.xml twice with respect to each provider object; and
finally compare the resulting objects, attribute by attribute, to
discover which attributes are fixed by the theme and which the
provider may control.  This is done once to collect the set of
attributes, and the results are cached and used for drawing each
subtitle.