Add IPTV capabilities to the existing Digital TV UI

Extending the current interface for using it not only for DVB but also for IPTV.

Commits:
1- Add IPTV capabilities to the existing DVB UI
- Basic IPTV capabilities
- Navigation TV panel: tabbed filters for DVB-T, IPTV and Radio

2- Digital TV: adapting the channel management UI for IPTV:
- Channel Scan is now called Digital TV tools
- UI: new tab for managing IPTV channels
- IPTV: option for adding individual channels
- IPTV: option for importing a m3u list of channels
- New checkbox for removing existing channels when saving. Removes only the channels of the same type (DVB or IPTV)
- Adding channels: new counter for preventing having duplicate prefNumber channels

3- Digital TV: split options from analog capture and new Digital TV options

3.1. General
- Split menu entry into: Open Digital TV / Open Analog Capture. File->Open Device now only refers to analog device
- Split class OpenDeviceData into OpenDeviceAnalogData and OpenDeviceDigitalData
- Channel navigation panel: only enabled tabs visible (depending on Digital TV options). Set initial active tab depending on current channel type.
- Add IGMP membership management: manage IGMP group join/leave for multicast IPTV streaming sources. Supports only IPv4 and IGMPv2. IPv6 and IGMPv3 could be added in the future if needed.
- Add shortcut for Digital TV

3.2. Exception handling:
- error controls (checking devices, etc.) moved from the general entry point to each channel switch operation
- Change current behavior: when error switching to a channel -> show error message in info bar and then stay ready for switching to another channel
- If the IPTV switching channel operation fails, we don't change the window size

3.3. Options & preferences:
- Split Digital TV options from analog capture
- New Digital TV options: DVB (BDA) and IPTV (include option: enable/disable IGMP multicast membership management)


Pending issues and known limitations:
- ONLY English version: to be updated once it is ready for merge
- IPTV Channel management: additional options (scan range of IP's and service discovery for multicast) are in progress and will be included in a different PR. 
- Access to channel management from options menu: will be also included in a future PR.
> I think we already have something for the cases like that.

We have void ``CMainFrame::UpdateControlState(UpdateControlTarget target)`` that we already (mis)use for such things.

> Please let me know how to proceed.

Either your current code, ``CMainFrame::UpdateControlState()`` or you can try using EventDispatcher.
The last one if preferred. Looking at ``CMainFrame::OnRefreshPlayerSettings()``, subscribers will be ``CPlayerNavigationBar``(or ``CPlayerNavigationDialog``) and ``CMainFrame``. Publisher will be ``CPPageDigitalTV`` obsiously. For how, search for ``MpcEvent::`` in the code, there are plenty of examples. Just note that while the event dispatcher itself is synchronous, the order subscribers get notified of the same event is undefined.