PPageShaders: enable/disable buttons individually

If we don't use this standard mfc method, keyboard focus remains on
disabled buttons.

Refs #4163
ASS/SSA subtitles: Fix a possible infinite loop during parsing.

The wrong loop index was incremented after a typo in 21298a3d04befa61f59e0f063a019f748f54af55.

This commit fixes #4173.
Shaders option page: the buttons' icons were missing on Windows XP.

This commit fixes #4163.
Update translations from Transifex:

 - Basque
 - Italian
 - Japanese
 - Portuguese (Brazil)
 - Slovak
 - Spanish
 - Swedish
Add a Tatar translation.

The composition of the translation team can be found on Transifex: https://www.transifex.com/projects/p/mpc-hc/language/tt/members/.
Add wrapper for dynamic winapi function loading
Prepare for new osd engine

 - Adds thread-safe playback state storage class
 - Encapsulates seekbar thumb drag logic to be reused
   in new osd seekbar
Get rid of start time in PlaybackState::Pos struct
MainFrame: refresh metadata less aggressively

In 4cf10a we started to resend same metadata repeatedly to both api and
skype. In this commit we do it only if the metadata actually changes.
MainFrame: fix taskbar clip area calculation
Separate TaskbarList from MainFrame and SeekBar
We herd ya liked reverts

This reverts commit 36adc3a8e3bcb3e3408db9349b65fe9d2ca66e1e.

Maybe one day it will go upstream in one form or another.
Controls: redraw after recalc layout

Video renderers paint messages may delay controls redraw otherwise
MainFrame: repaint evr when requested
Don't MoveVideoWindow() in d3d fullscreen toggle
MainFrame: refactor dpi helper
Settings: place all osd settings in one struct
Osd: new implementation
Osd: switch to the new implementation
Osd: use our own madvr exclusive mode notification