frontend: use delsys list instead of frontend 'type'

Since DVB API 5, frontends no longer have a 'type',
but a list of supported delivery systems instead.

Add support to whitelist a subset of delsys, because
some delivery systems might not work without switching
a different (type of) cable (e.g. DVB-T vs DVB-C).
The delsys whitelist can be changed on-the-fly, without
having to close/reopen the frontend (as opposed to
the legacy frontend 'type', which cannot be changed
using the DVB API)
NimManager: implement multi-type tuners based on delsys list

Switching the tuner type changes the delsys whitelist

Whenever a legacy /proc/stb/frontend/<id>/mode entry is found,
it will be used as a fallback.
But when a frontend does not have such an entry, use
DVB API 5 compliant multi-type switching.
NimManager: add sanitycheck on nim_slot frontend_id

we should not call eDVBResourceManager::frontendIsCompatible
for slots without a valid frontend_id
freesatv2: Simplify header and reduce code, resolve compiler warnings

Compiler warnings on "const" correctness.
Don't put implementation details (storage struct) in header.
dvb: Make "Read-and-strip" method more efficient

Don't call strlen 5 times per cycle. Don't call it at all. Don't use a
FILE* for reading only a dozen characters.
frontend: add PLP support (DVB-T2)
NimManager: create all applicable config for multi-type frontends

e.g.: combined DVB-T/C frontends need config.Nims[<id].terrestrial
and config.Nims[<id].cable ConfigSubsection, in order for them
to be switched on-the-fly
NimManager: avoid leading space in parsed multi_type list

Untill recently, the leading space was merely a cosmetic
issue.
But now that we start relying on the multi_type dict for
tuner type matching, the leading space is causing problems.
[InfoBarGenerics] make sure standard timeshift infobar timeout is activated.
[UserInterface] rename OSD.py, and add UserInterface Wizard to FIW.
freesatv2.cpp: Faster parsing of data files

Reduces parse time from 370 ms to 74 ms. (hence, E2 starts 296 ms quicker)
freesatv2: Fix that last commit

Forgot to stage this, a missing code line and fix compiler warnings.
GraphMultiEPG: Make function of OK button configurable

From now it could be zap to the channel or get the detailed event
info on the selected event. Configurable via the menu button in GME.
In addition I added EPG key to detailed event info as when the OK
button is assigned to zap then detailed info is not possible in some
remotes
InfoBarGenerics: reduce timeout to zap after 2nd number
RecordTimer: isInTimer: keep searching for full event recording

isInTimer() stopped searching at the first timer entry that matched
part of the event time.
This fix will only stop searching when a timer is found that completely
covers the event (or when there are no remaining timers off course :)
[PowerManager] add first stage PowerTimers, more features to follow.
[PowerManager] add "Wakeup To Standby" to the options.
frontend: keep 'simulate' frontend delsys in sync with real frontend

we used to keep m_type in sync, but m_type has been replaced by delsys
[PowerManager] add some checks for running timers, and if found delay power timer.
[PowerManager] make sure END time is never before BEGIN time when delaying.