[EPG] Do *Persist*() calls on a copy of m_epgs

We can get in a situation where PersistAll() and PersistTables() are
running simutaneously, leading to memory corruption.
[EPG] Make sure we catch requests to update during update.
[PVR] Don't disable PVR clients not in AddonDB

AddonDB is not a reliable source for testing existence of an addon, use
AddonManager instead and tag clients as "known" in PVRDB.
[PVR] Drop unused AddonDB instance member.
[PVR][ADDONS] Drop unneeded PVRAddon special case
[PVR] Add optional param to RegisterClient to get registration status
[PVR] Make sure client addons are disabled first time we see them.
[videodb] don't lookup similar items' playcounts when adding movies with no imdb/year. fixes #15248
Merge pull request #4798 from jmarshallnz/no_imdb_no_problem

[videodb] don't lookup playcounts when adding movies with no imdb/year
Merge pull request #4761 from t-nelson/alt_incorrect_pvr_addon_disable

Avoid incorrect disabling PVR addons (Alternate)
Merge pull request #4758 from t-nelson/epg_persist_copies

EPG crash fix
[PVR] Allow PVR subwindows access to real windows control ID
[PVR] Allow PVR subwindows to receive GUI messages
[PVR] Defer EPG notifications to app thread

Fixes deadlock opening liveTV window while channel EPGs are being
generated.