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.
Use new ServerPool capabilities, and only advertise AirPlay via Bonjour if the server creation was successful
Fix RAOP time request failing to send

Was using the wrong socket.
Also fix typo in OPTIONS response.
Always re-use the same computer ID for AirPlay. Share ID between RAOP and AirPlay

Random ID is generated the first time, the following session will always re-use the same ID.
Having AirPlay and RAOP share the same hardware ID makes mythfrontend behave more like an AppleTV: only one device is showing in the list. Either one for audio or one for audio+video, not both at the same time.
Make mythfilldatabase calls put user-provided args last

Fixes #10683
Add command string parser to break up commands for direct execution.

This adds a parser for the UNIX version of MythSystem, to break commands
apart at white space characters, obeying quoting and escaping where
appropriate, to allow commands passed as a single string to be executed
directly by execv, rather than be passed through the Bourne shell.
Note, this does not include support for any form of piping, redirects,
or backgrounding.  This includes an ABI bump.

Refs #10860
Enable command splitter for anything not explicitly flagging kMSRunShell

This alters the MythSystem(QString, uint) constructor to automatically
parse any commands passed through it that do not explicitly set the
kMSRunShell flag.  A quick run through the code does not turn up any
instances where this is currently the case, so the code should remain
effectively unused for now.  Individual MythSystem users and the block
of myth_system() calls will need to be tested individually with this
path to debug the parser.

Ref #10860
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.
Merge commit '30a0d398cc5f40487a69ddcc3beff77b09052def'
Add --parse-video-filename option to test filename parser.

This adds a new option to MythUtil to hook directly into the filename
parsing routines used by the Video Library, to allow them to be tested
directly for irregularities rather than having to go through the
scanner.