[win] Fix default value of vertical sync setting from disable to always.
[vfs] CFile: remove 'virtual' from destructor
no class is derived from CFile
[osx/gtest] - fix linkage of xbmc-test binary (ffmpeg now needs expliciti linkage agaoinst framework VDA, and some new source files were missing in the makefiles)
[osx] - fix cmdline linkage of lixbmc.so and xbmc.bin - there is no circular dependency linker option on osx (e.x. -Wl,--start-group/--end-group) - so we still need to link in main.a for osx.
[confluence] replace subtitle flag icons with new ones

As discussed in #3552, this replace the subtitle flag icons with new
32x32 pixel icons from https://www.gosquared.com/resources/flag-icons/

This also fixes some wrong flags like uk. It's Ukrainian not United
Kingdom.
Respect results of WOA.
players: move more things into info structures for audio/video
dvdplayer: don't constantly hammer demuxer to get stream count

Note this could cause regressions in files where streams show
up during playback, but i think the demuxer signals such
situations now.
load replaygain tags on mp4 style files
load tags when opening file so they are available when we try to read replaygain

provide a fallback file type to tagloader based on content

pass content type to DVDplayer for types that support tags, in order to set a fallback filetype
[LangCodeExpander] Update iso639-2 db.
[LangCodeExpander] Update iso639-1 db.
[LangInfo] Don't try to convert "original" to 3-letter code.
[LangCodeExpander] Add special mappings for missing 2-letter codes.
Add Utf8Utils.h/.cpp with class for UTF-8 string manipulations
RegExp: put more data to log on UTF-8 errors
[url] don't run ValidatePath() on hostnames where the protocol has an encoded hostname. fixes #14699
Implement a window ID cache

In the course of each refresh of the visibility of controls (which is
performed every frame), there are many calls to CGUIWindowManager::GetWindow
to convert from a window's integer ID to a pointer to the corresponding
CGUIWindow pointer. This involves acquiring a lock and performing a tree walk.
Yet in practice, the same ID is looked up many times in succession, so this
benefits from a simple cache of the most recently checked ID.

I measured the effect while the Videos window of the default skin was open
(but idle) on a Raspberry Pi, and this simple change alone reduced the CPU
usage by 1.5% from 46.6% to 45.1%:

          Before          After
          Mean   StdDev   Mean   StdDev  Confidence  Change
IdleCPU%  46.6   0.9      45.1   1.2     99.8%       +3.3%
[vfs] remove win32 code from SmbFile.h/.cpp
[vfs] remove win32 code from SMBDirectory.cpp