Make the logging change more clear

The previous way it was fixed was a bit confusing (in particular chaining
assignments like "format = formatcopy = strdup(format)" is difficult to
maintain as it confuses people).
Oops.  Fix const char * vs char *
Generalize caching and allow post configuration.

This moves the caching code into a private 'engine' and adds a function
to allow selection and manipulation of that.  Currently, only the null
and file engines are available.  The file engine is the previous
behavior, and the null engine disables caching all together.

from request import set_cache
set_cache(filename='some_file')
set_cache(engine='null')

The filename will be used directly if the first character is '/',
indicating an absolute path. '/tmp' will be prepended otherwise.
Correct missed variable name change.
Correct import method to use installed package.
Merge commit '1e4b690a2d6a5854eca6038a7c67ded2df973ce6'
Move tmdb3.py script into location used by metadata libraries.

This script is currently usable, but is being placed here for staging
purposes only.  The version output has been disabled, preventing its use
in the UI selection dialogs.
Remove MythTV grabber script.  Script is now located in the MythTV repo.
New Hong Kong Chinese locale file
from Walter Cheuk

Thank you Walter!

PS: I will add those new date and time format to the settings page in
another commit.

Closes #10498

Signed-off-by: Nicolas Riendeau <nriendeau@mythtv.org>
Initial changes for improved locale support.
Updated Canadian English MythFrontend and all plugins translation
Update Canadian English qms
Updated US English MythFrontend and all plugins translation
from the US English Translation Team.
Implement locale support in searches and data queries.
Finish up locale and fallthough.

This completes the transition from language to locale support from the
previous several commits. All search and data classes now accept a
Locale class as a keyword. If none is provided, they will instead use
the global default. Access and configuration of locales is provided
through the get_locale() and set_locale() functions.

set_locale(language=None, country=None, fallthrough=False)
    This sets the global default, as well as the global fall through
    behavior. If no language or country is given, and no previous
    configuration is set, it will attempt to pull the system's locale
    from the environment.

get_locale(language=None, country=None)
    This returns a new Locale class to use directly in a search or data
    query. This will be automatically propogated through any additional
    objects spawned by the search or query.

Fallthrough
    If a language or country is specified for use by an API query,
    fallthrough is enabled, and there are missing or None fields, this
    will automatically run a second query with the language or country
    information removed, in an attempt to fill those missing fields.
    Fallthrough is not used for searches, however it will be used to
    supplement any information for results returned by those searches.
    Fallthrough is a global option, so while you can specify a specific
    locale to use for a line of queries, fallthrough will either be
    enabled for all or none.
Delete missed line causing syntax error.
Add exception type for unknown language or country.
Add Movie.fromIMDB method.

This accepts an IMDB number, padding and prepending 'tt' as necessary,
and immediately populates the Movie object to cycle in the correct TMDB
id for subsequent use with other methods.
Merge commit 'd7d68c2f584ee9c7bc9b52567038cb14fa8b0ed0'
Updated MythFrontend, MythArchive, MythBrowser, MythGallery, MythGame,
MythMusic, MythNetvision, MythWeather, MythZoneMinder translation
from Marko Punnar.

Thank you Marko!

PS: Sorry for the delayed commit, I thought I had time to process it
earlier today.

Closs #10512

Signed-off-by: Nicolas Riendeau <nriendeau@mythtv.org>