Merge remote-tracking branch 'origin/pr/257'
Merge remote-tracking branch 'origin/pr/258'
epgdb: some simplifications and corrections to the epg periodic save

saving is now done from the gtimer system since a global lock is
required to be able to edit the EPG data.

I've also added missing global lock processing elsewhere.
Merge remote-tracking branch 'origin/pr/152'
cwc: cryptoworks - remove double malloc in the emm code
serviceprobe: add NULL ptr check on dvb mux to be safe
Fix #1444 - dvr: ensure that DVR entries are not removed when EPG is updated

previously an overlapping (replacement) event could result in the DVR
entry being completely removed. This will now ensure that the original
entry is left in place (with just info and times).

It will also try and re-match with an EPG entry as and when it can.
Fix #1643 - dvb: close dvr device on each re-tune
dvb: fix problems with dvb satconf processing and storage
dvr: ensure unlinked entry updates are properly handled

previously it updated things that were already linked and also on
different channels entirely.
dvr: another minor improvement to epg/dvr relinking

Realised that we don't need to update things that are no longer
scheduled (i.e. complete).
opentv: hack to include episode/series number processing from description.
dvb: fix mistake in dvr close commit (wasn't restarting thread)
Fix #1657 - timeshift: add constant length qualifier to avoid warning on some arch's
libav: fix memory leak when converting packets to annex-b format
cwc: syslog: move some log messages to debug
Fix #1660 - dvb: stop constant updating of dvb mux configuration files
Merge remote-tracking branch 'origin/pr/253'
Merge remote-tracking branch 'origin/pr/260'
Split service out in a superclass and a per-hw type class