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
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
Merge pull request #3408 from Karlson2k/win32_fix_path_slashes_small

Win32: fix path slashes (diet version)
dvdplayer: disallow hw accel of SD mpeg2's

They are many dvd rips with non profile conformant streams that just
give garbage when rune using the hw decoder.
Merge pull request #3395 from garbear/invalid-dates

Fix infinite loop while viewing "EPG: Timeline" window
Merge pull request #3417 from elupus/mpeg2sd

dvdplayer: disallow hw accel of SD mpeg2's
videoplayer: adapt lateness detection and dropping to buffering
video player: present correct pts to user for a/v sync (after buffering in renderer)
videoplayer: some rework and documentation
renderer: bump buffers to 5
videoplayer: update frametime, it might change due to fps detection
videoplayer: give streams with invalid fps a chance for fps detection