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.
Don't refresh the whole tree when changing the watched status on a video, this avoids us losing our place and is faster.
Guard against a null pointer in ToggleWatched(), unlikely but best not to assume it's impossible.
Apply the MythUIShape's alpha attribute when drawing it.

This is primarily to allow osd_subtitle.xml to use the alpha attribute
in addition to or in place of the line and fill alpha attributes, when
defining subtitle backgrounds.
Run git status before git describe to clear false dirties
Add recording rule templates.

Recording rule templates are used to initialize new recording rules.
Templates can also be used to modify existing rules.  The "Default"
template replaces several, individual settings previously available in
the Setup wizard.  Those settings are automatically propagated to the
Default template.

Templates can be added, edited and deleted from within the Recording
Rules screen.  To add a new template, choose MENU / "New Template" and
then enter the name of the new template.  To edit a template,
highlight it and then choose ENTER or EDIT to bring up the schedule
editor.  To delete a template, highlight it and then choose DELETE or
edit it and change the type to "Delete this recording rule template."

When a regular rule is created, MythTV first tries to use the template
whose name matches the category of the program.  Failing that, it
tries to use the template whose name matches the category type of the
program.  If no template is found which matches the category or
category type, the Default template is used.

For example, if a user frequently records baseball games, he can
create a "Baseball" template which automatically sets the end-late
option to allow for extra innings.  Likewise, a user can create a
"Series" template which automatically sets the duplicate checking
method and the episode limit.

When a search, manual or template rule is created, the Default
template is always used.

The names of template need not match program categories or category
types.  They can simply be available to apply to other rules.  To
apply a different template to an existing rule, including a template
rule, begin editing the rule and then press MENU / "Use Template."
For example, a user can create an "Archive" template which changes the
recording group to "Archive" and turns off auto-expiry.
Subtitles: Call Pulse() on the SubtitleScreen children.
Various fixes in Airplay

Fixes:
-Playback on frontend always start at the beginning, iOS continuing to play where left off.
-Scrubbing not working
-Playback position on frontend and iOS device not in sync
-When quitting playback on iOS, video continue on frontend.
-When quitting playback on frontend, iOS not notified and playback counter continues progressing

There's still a minor cosmetic defect, when scrubbing quickly and the iOS device pause playback, the positions between the frontend and iOS device are not in sync. It will become in sync only once playback resume.

MythTV doesn't handle http live streaming playback yet, so Airplay will not work with some applications (in particular AirVideo) streaming via HLS
Fixes #10305. Remove mysql.txt support.
Minor LOG fixes.