Revert "mhook: backport version 2.4 changes"

This reverts commit 4524c7ddbbd06ae471dbb3221e9a40d067ad2840.

Fixes #4179
mhook: backport REX-prefixed EIP-based jump fix

This reverts commit 1b826e7a56671c3b8ed0ee827bc2186700a3a952.
Revert "Fix rare black screen issue with madvr"

This reverts commit 455619eadd8c157f977041bdbad4522c47166eb3.

Not reproducible with latest mpc-hc and madvr.
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