[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.
FIX: [sets] actually allow to delete sets
[python] add onScanStarted/onScanFinished and deprecate onDatabaseScanStarted/onDatabaseUpdated
dvdplayer: drop old remnant of masterclock
FIX: [amlcodec] make FF/RW work
dvdplayer: let CDVDClock hold info on what is current master clock
dvdplayer: replace old frame sleep with timestamp based one

This avoid depending on frame duration in advance of next frame
dvdplayer: add support for allowing video player being master clock
dvdplayer: move selection of video reference clock to dvdplayer

CDVDPlayer is now the master of clock selection even in the
video reference clock case. This avoids the data transmission
between audio and video players for clock selection.
dvdplayer: add accessor for current clock speed adjustment to dvdclock

This avoid direct access to video reference clock in players
dvdplayer: let Discontinuity function take absolute timestamp and log

This allow caller to re-use timestamp that calculations where made on
to reduce effect from task scheduling and avoid logging corrections done.
dvdplayer: move limit check of clock discontinuity into dvd clock
dvdplayer: move sync after clock switch to UpdateClockMaster
dvdplayer: use master clock as basis for player to sync clock

TODO: move this into the players so they check on reception of packet
if they are the master of the clock.
FIX: [AE] if null sink is requested, return null sink
ActiveAE: stop processing passthrough packets for paused streams, fixes audio glitch on pause
[pvr] fall back on the channel icon if no thumbnail is available
for recordings
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