Fix infinite loop while viewing "EPG: Timeline" window

With invalid begin/end times, the for loop in GUIEPGContainer.cpp L#825 (https://github.com/xbmc/xbmc/blob/5f33d290e/xbmc/epg/GUIEPGGridContainer.cpp#L825) loops endlessly, freezing XBMC when the user views the "EPG: Timeline" window. Solve this by adding check for invalid end times.
URIUtils::AddSlashAtEnd: remove CStdString
URIUtils: remove CStdString from HasSlashAtEnd and RemoveSlashAtEnd
AliasShortcutUtils: remove CStdString
libass: bump libass to 0.10.1
pvr: make sure we ask the alternate stream for seekability
pvr: make sure we check seekability using the dedicated function
URIUtils: add 'FixSlashesAndDups()' function
[win32] WIN32Util: add "ConvertPathToWin32Form()" function
[win32] WINSMBDirectory: Update, remove CStdString
[win32] WINFileSMB::GetLocal: update, remove CStdString
HDDirectory: error checks, update for Win32
HDFile: remove CStdString, update for win32
upnp: prioritize local lan resource when getting playback to use
upnp: avoid crashing when upnp remote player times out

Platinum stores a callback that can end up being called after the
object have been deleted.
Merge pull request #3410 from elupus/libass0.10.1

libass: bump libass to 0.10.1
Merge pull request #3414 from elupus/upnp_fixes

Upnp fixes
Merge pull request #3411 from elupus/pvr_seek

Pvr seek
fixed crash when resetting the epg while the pvr manager is not running. trac: 14448
dvdplayer: remove resume players on CloseFile, fixes some small portion of audio being played when stopping a paused video