Intermediate commit (will not compile).

Big clean up for the XMLTV plugin.
- added the ability to run a program or batch script instead of (or as well as) downloading and unzipping a file
- import and schedule status updated every 10 seconds [with more detail too]
- removed unnecessary "import tvguide.lst" and "import tvguide.xml" options; import uses the tvguide.lst if it exists, or tvguide.xml if the list file does not exist
- fix "delete old programs before import": when ticked, all existing programs for the imported channels are deleted - when not ticked, only overlapping and expired programs are deleted
- renamed and clarified the ultra-confusing "apply time compensation..." option - previous recommendation was to enable the option and set hours and minutes to zero (in order to automatically compensate for daylight saving); now daylight saving compensation is automatically applied, and you should only enable the option if you really want to adjust times
- added the ability to specify separate time adjustments for each file in tvguide.lst (format: <file name/path>|<adjustment hours>|<adjustment minutes>)
- mapping now gets the channel details from the server where the XMLTV files are
- remove the mapping visible in guide column (read only); only channels that are visible are shown in the mapping section
- fixed the mapping bug with brackets, thanks @RonD ! http://forum.team-mediaportal.com/threads/some-channels-have-no-data-xlmtv-webgrab.126366/#post-1085937
- remove the xmltv.dtd file, no longer needed
- generally tidied up the UI (group boxes, tab order, better descriptions)
- generally tidied up the code (better structure, synchronisation/locking, better logging, some performance improvements)
Clean up IPTV m3u playlist support. We don't need anything more than basic m3u support.

Also:
- use the m3u duration field as channel number when the channel number is not found in the stream (NIT/BAT)
- remove the SAP option from IPTV scanning (it has never worked, and AFAIK providers don't support it anyway)
More XMLTV tweaks:
- fix enabling/disabling fields on the schedules tab on first load
- convert the fixed time schedule option into a "between times" option
- fix double import cycle after program execution, caused by rounding errors on the difference between the file write timestamp and last import timestamp
- tweak logging for clarity
Add XMLTV scheduled actions frequency. Thanks for the suggestion @azzuro !
Fix XMLTV classification doesn't remove tags (eg. <value>FSK 12</value>). Thanks @pünktchen !
Support negative numbers with the MP numeric text box.
Center align text in XMLTV plugin numeric up down controls.
Merge changes from remote. Somehow git has got itself confused.