MainFrame: fix floating menu regression

It was introduced in d05934204defa59efdd51f9023620ad03fc37239.
Not all "bad" key combinations were covered.
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
Disable subpic queue for madVR.

Buffering subpic doesn't work well with madVR internal queue.
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
fck dshow

Because unexpected deadlocks are unexpected.