ADD: "last played" sort option to TV Show GUI
zeroconf: maintain txt record order when publishing service
zeroconf/osx: maintain txt field order on publish

OSX create the txt records using a dictionary, so to maintain
order, we use a custom hash function that put all elements
in the same hash bucket.
[Fix] Add missing audiochannels rule to PlayerSelectionRule.cpp. fixes #13536
CGUIDialogVideoInfo: re-open the art selection dialog after having chosen a specific artwork
changed: Refactor CGUIMediaWindow::ShowShareErrorMessage() so it works with any path
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.
DllAvFormat: drop mapping of url_feof, it is unused in xbmc code and not present in libav.
DllSwResample: use uint8_t types for avresample_convert. libav changed their prototypes.
gui: add Player.Title to replace VideoPlayer.Title and MusicPlayer.Title
confluence: use Player.Title instead of (Music/Video)Player.Title

This label is generic and support non video/audio players as well
gui: allow reporting of playback time for a non av player

Shows info for a upnp remote player
gui: allow progress tracking for non video/audio players
paplayer: bring OnPlaybackStarted/Stopped in line with dvdplayer
sys: only reset forced player on playback stopped

This will allow a forced player to continue advancing in a playlist.
sys: add methods for dynamic player addition/removal to PlayerCoreFactory
upnp: add support for controlling external player
sys: add action "switchplayer" that allows switch of forced player

This allow moving a playing item to a another player (remote upnp
for example) and attaching to a remote upnp player already playing

It's hooked up to "y" on keyboard currently.

squash into switching
gui: make sure we leave fullscreen if we start a player without media
upnp: factor out code that build a CFileItem from a PLT_MediaObject