Scripting API: Properly escape values passed as arguments to pages. Disallow any parameter names which aren't valid as ECMA Script property names e.g. Anything beginning with a number, or containing non-word characters except $ or _
Add -Werror=format-security to the build args

Mageia, Fedora and other distros are requiring packages to be built with -Werror=format-security. We may as well add it to our args as a default so that we catch issues before they cause problems upstream. The good news is that the code contains no errors of this sort, but it doesn't hurt to guard against them being introduced in the future.
Only jump back in a menu to the nearest previous block with subpictures if a seek operation is already in progress.

This should prevent infinite loops on some discs (e.g. Independence Day) where the menu highlight packets are somehow not processed before the navigation data indicates that buttons must be shown.
Prevent MythWelcome blocking input devices when calling mythshutdown to avoid resetting the idle timer (see [cac1413]) when trying to determine whether the backend is idle, thereby preventing shutdown.
WebFrontend: Complete schedule editor (Beta)

There is still some missing functionality and it's only been lightly
tested. Search/Custom rule editing hasn't been tested at all.

Use entirely at your own risk. Feedback would be appreciated.

Refs #11938
Scripting: Add support for php style form arrays (name='foo[a]'). See http://www.php.net/manual/en/faq.html.php#faq.html.arrays
Web Frontend: Invert schedule StartOffset as it makes more sense to me that a negative value means 'early'
WebFrontend: Don't display 'Don't Record' option in the rule editor,
it's not a valid option for the services API.

Users can instead use the 'Delete Recording Rule' menu option.
Remove debugging menu entry, left in accidentally in e221ecd2
Webfrontend: Fix ID mis-match, changed name in one place but not the other
WebFrontend: Check all required fields are present before submitting schedule editor form
MythFrontend Schedule Editor: Pre-populate the season/episode of a recording rule if they were defined by the guide data. User-defined values take precedence.
Fix ordering of Artwork in selection dialogs. Best matches should now appear first, not last.
Fix python bindings to store updates to video markup data.
Services: Allow upcoming recordings list to be filtered by recording rule
Services: Allow conflicts list to be filtered by recording rule
Webfrontend: Show upcoming and conflicting recordings for the
recording rule in the editor.

These are not yet updated automatically when the rule is saved
Services: Include conflicting recordings in the GetUpcomingList()
output even when ShowAll isn't true.

I don't think this was the original intention, but if we are to mirror
the behaviour of the frontend, mythweb etc then this list should
include conflicts. This may yet evolve into a seperate ShowConflicts
argument so both the old and new behaviour are possible.

We already show aborted, failed and other 'bad' states in this list.
Improve rsOtherShowing marking

Don't require the other showing to be on the same channel, just that
it's the exact same program with the same starttime.

While here, rename related methods to better reflect their actual
behaviour.

IsSameTimeslot() becomes IsSameTitleStartTimeAndChannel()

i.e. entirely different from just being the same Timeslot, end time
wasn't checked but Channel and Title had to match

IsSameProgramTimeSlot becomes IsSameTitleTimeslotAndChannel()

IsSameProgramTimeSlot() wasn't actually checking that it was the same
program, it would match a different episode of the same series.
Avoid memleak in LoadFromScheduler()