MainFrm: Fix starting in fullscreen when D3DFullscreen is enabled.
MainFrm: Hide the cursor when starting in remembered fullscreen for consistency.
MainFrm: Remember last fullscreen state when using D3DFullscreen.
CVMROSD: Fix OSD message not being removed after switching the video window.
CVMROSD: Get the lock before changing the video window.
Remove madVR D3DFullscreen support, it isn't useful.

Exclusive mode is handled internally in the renderer.
AppSettings: Disabled D3DFullscreen hotkey by default.

Now that users can switch between windowed and D3DFullscreen during playback a toggle hotkey doesn't have to be provided by default anymore.
MainFrm: Use CAMMsgEvent to prevent deadlocks.

D3DFullscreen now works with the GraphThread active.
MainFrm: Consistently use IsD3DFullScreenMode() to check if D3DFullscreen is active.

This is more consistent and allows us to easily change the conditions in a central location.
MainFrm: Remove redundant OSD message hiding.

This is already done in OnResetDevice().
SyncRenderer: Add support for ID3DFullscreenControl interface.
Call ToggleD3DFullscreen from GraphThread if it is active.

This prevents the MainThread from manipulating the fullscreen window which it does not own.