pvr: Added API function GetRecordingEdl

This extends the PVR API with the function GetRecordingEdl
to retrieve edit decision lists from the PVR addon.

In addition, DVDPlayer's EDL class has been adapted to read the EDL
from the backend when starting playback of a recordings.
Stay on safe side, use only one header file.
Other header is located at xbmc/linux/ and seem to be more accurate.
Add CTL_BUTTON_CLEAR control message for generic keyboard to clear text.
[release] version bump to 13.0 alpha2 as we start new merge window.
Add compilationartist property to AudioLibrary.GetArtists
Remove unused variable initialization
pvr: Write playCount in WriteClientRecordingInfo
pvr: Read recording's last played position from field in PVR_RECORDING
pvr: Cosmetics
addons: Add Announce function and register addons for announcements

This allows addons to receive announcements and react properly on
all kind of events and system state transitions.

For example pvr addons might want to close and reopen their backend
connections when the system goes to or resumes from standby.
addons: Add WakeOnLan function

WakeOnLan allows addons to send a wol magic packet.

This can be used for example in pvr addons to wake up a pvr backend.
[rbp] Fix for audiotoggledigital on Pi.

Pi only has two audio output modes so the three way toggle gets stuck. This fix corresponds to Pi specific settings code:
https://github.com/xbmc/xbmc/blob/master/xbmc/settings/GUISettings.cpp#L458
Create channels with m_bEPGEnabled set to false for hidden channels

When first creating a channel, set m_bEPGEnabled to !channel.bIsHidden.
This enables the EPG scanner to only work on visible channels as
default, thereby reducing scan time, especially important on setups with
thousands of available channels, but with only a limited set visible.
Enable and disable m_bEPGEnabled when changing channel visibility
[rbp] Fix for stuttery video when seeking before zero

There are a few issues with seeking I found.
We weren't correctly setting OMX_BUFFERFLAG_TIME_UNKNOWN on the first frame after a seek which could make the GPU think video was at 0 and audio at a much larger offset.
A full video fifo (to GPU) stops any higher priority messages from being received which can stall a seek and the flush message doesn't get through. Use m_flush to discard the video packet that doesn't fit.
We get an audio frame through with unknown pts/dts after the flush, but before the GENERAL_RESYNC when seeking. This was given to GPU and was perhaps 30 seconds out from the following packets and that throws off the timing between audio and video streams. Keeping m_flush true until the GENERAL_RESYNC discards this frame. Hopefully that is safe.
CGUIDialogVideoInfo: show all existing artwork types for a specific media type in the "Choose art" dialog
droid: add builtin for executing android apps via applicationmanager
refactor GUiRenderingControl, clear dependency to viz
expose GUIRenderingControl to addongui lib
AddonGUI: handle OnAction and OnMessage the same way as internal gui - if control of addon acts, message is taken