StatusBar: less greedy invalidation

Fixes rare flickering.
MainFrame: call OnGetMinMaxInfo() before resize
Cosmetics
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
Disable madvr exclusive mode on fullscreen exit
MainFrame: repaint evr when requested
Don't MoveVideoWindow() in d3d fullscreen toggle
MainFrame: refactor dpi helper
Organize mpc-hc vs project filters
VersionInfo: don't use static methods

Simple namespace is more than enough.
VersionInfo: survive undefined macros
VersionInfo: add GetCompilerName() function

And use it in About dialog.
VersionInfo: distinguish MSVC 2013 updates

Based on pull request #128 by Bruno Barbieri
Add new color button control