Make some sense out of GraphThread (wip)

There are still a _lot_ of things to be changed in OpenMediaPrivate()
(that code is really bad) and some in CloseMediaPrivate(), but at least
I can continue to work on autohiding panels code.
Rewrite mouse handling code (wip)

Fixes #1300, #1556, #2081, #3284, #3379

Also:
 - adds timer wrapper objects in MainFrm
 - hidden menubar is now acting like on-demand floating one
 - adds codepath for hiding toolbars in windowed mode,
   but no corresponding settings entries
 - new option to autohide panels just like toolbars
MainFrm: remove unused variable
D3DFS: remove horizontal margin from osd posbar

The bug with autohiding is now fixed and there's no reason to have it
there
ChildView: remove unneeded critical section
PlayerNavigationDialog: minor refactoring
PlayerListCtrl: call CWnd::OnTimer() in OnTimer()

Some mfc timers need that
Delay OnIdle() calls initiated by WM_MOUSEMOVE