Make some sense out of GraphThread
Rewrite mouse handling code

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

Also:
 - adds timer wrapper objects in MainFrm
 - hidden menubar is now acting like on-demand floating one
 - new (hidden) option to autohide controls in windowed mode
 - new option to autohide docked panels
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