[Fix] Add missing audiochannels rule to PlayerSelectionRule.cpp. fixes #13536
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.
[IPlayer] Add struct SPlayerAudioStreamInfo and GetAudioStreamInfo(int iStream, SPlayerAudioStreamInfo &info).
[Players/GUI/LegacyPlayer/JSON] Remove
    GetAudioStreamLanguage(int iStream, CStdString &strLanguage)
    GetChannels()
    GetAudioCodecName()
    GetAudioStreamName(int iStream, CStdString &strStreamName)
from all players and replace them with GetAudioStreamInfo(int iStream, SPlayerAudioStreamInfo &info).
[IPlayer] Add struct SPlayerSubtitleStreamInfo and GetSubtitleStreamInfo(int iStream, SPlayerSubtitleStreamInfo &info).

[Players/GUI/LegacyPlayer/JSON] Remove
     GetSubtitleLanguage(int iStream, CStdString &strStreamLang)
     GetSubtitleName(int iStream, CStdString &strStreamName)
from all players and replace the calls to them with calls to GetSubtitleStreamInfo(int iStream, SPlayerSubtitleStreamInfo &info).
[Players] Remove unused method GetSubtitleExtension(CStdString &strSubtitleExtension).
[IPlayer] Add struct SPlayerVideoStreamInfo and GetAudioStreamInfo(SPlayerVideoStreamInfo &info).

[Players/GUI] Remove
    GetVideoBitrate()
    GetVideoCodecName()
    GetVideoAspectRatio(float& fAR)
    GetVideoRect(CRect& SrcRect, CRect& DestRect)

from all players and replace the calls to them with calls to GetVideoStreamInfo(int iStream, SPlayerAudioStreamInfo &info).
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.