[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.
FIX: [AE] if null sink is requested, return null sink
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
[guilib] repeat wasn't considered for translation of constants during skin load. fixes #14243. thanks vdrfan
Merge pull request #4804 from jmarshallnz/constantly_repeating

[guilib] repeat wasn't considered for translation of constants
Merge pull request #4785 from koying/fixaenull

FIX: [AE] if null sink is requested, return null sink
Merge remote-tracking branch 'upstream/master'