MythMusic: send a 'SCAN_MUSIC' command to the master BE to start the file scan

This sends a command to the master BE to initiate a music file scan which will
also forward the request to any slaves with a 'Music' storage group directory.
RemoteFile: add a CopyFile() static function

This allows either local or remote files to be copied. It's useful to
copy a local file to a remote master or slave BE or vice versa.

Performance seems a little slow may have to try tweaking the buffer size
to optimize it a little.
RemoteFile::CopyFile() check we're not trying to copy a file to itself
ImportMusic: update the music import to use storage groups

This allows the import music screen to move the imported tracks to any backend
with a directory in the 'Music' storage group.  The master will be used by
default but you can save to any BE by using the "Select Where To Save Tracks"
option in the popup menu. The option is sticky so once changed the same one
will be used the next time until it's changed.

Still need to work on the album art side of things.
Add a system event to handle CEC commands

Add a system event "CEC_COMMAND_RECEIVED" together with a token %COMMAND% that is the opcode in decimal.

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>

Closes #11546
Count added to GetTitleInfoList

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>

Closes #11959
Fix segfault in MythUIButtonList::GetItemCurrent(). Fixes #12040
MythMusic: remove 'Directory to hold music' setting from the settings pages
MythMusic: check we have at least one directory in the 'Music' storage group

This make sure we have a directory in the music storage group before trying
to open a screen that requires one. Prompts the user to run mythtv-setup
if non was found.
MusicMetadata: remove some no longer required local file stuff
MusicPlayer: no need to update the music directory when the settings change
MythMusic: remove no longer required get/setMusicDirectory()
should have bumped the version in a5ecdd0c since it changes the plugin ABI

Core and plugins need to be recompiled
Make "DailyArtworkUpdates" a global option

This makes the DailyArtworkUpdates setting a global setting so it can be
properly configured on any frontend. This patch does not include any
code to fix an existing improperly configured setting, which could cause
problems in the future, as the per-host option will override the global
one and will be uneditable without direct database modification.

Refs #12033
Allow housekeeper to track last successful run of task

This adds a new column to the database for tracking the last successful
run of a task, in relation to its last attempted run, for the purpose of
allowing a failed task to rerun on a shorter interval. This also updates
the hardware profiler to retry daily after a failure, rather than
waiting 30 days for another attempt.
Merge remote-tracking branch 'upstream/master'

Conflicts:
	mythplugins/mythmusic/mythmusic/generalsettings.cpp
	mythplugins/mythmusic/mythmusic/generalsettings.h
	mythplugins/mythmusic/theme/default-wide/musicsettings-ui.xml
	mythplugins/mythmusic/theme/default/musicsettings-ui.xml