Fix RendererHasFocus().
Prevent DXGI from making changes to the window.

Prevents DXGI from responding to Alt+Enter and messing up our fullscreen handling.
D3D: Request desktop resolution before overriding the buffer size.

This fixes issues where the wrong refresh rate is selected for some monitors.
D3D: Make the swapchain available outside of the namespace.

This commit reverts a part of pull request #579.
D3D: Add exclusive fullscreen support.
D3D: Return to windowed mode before destroying the swapchain.
D3D: Initialize the renderer in exclusive fullscreen mode if it is enabled.
Remove fullscreen flag from video config, detect it from RendererIsFullscreen() instead.
Renderer: Restore windowed size after exiting fullscreen.
Renderer: Restore exclusive mode after focus has been regained.
Cosmetic changes based on feedback on PR #506.
D3D: Don't set the windowed mode size when we initialize in fullscreen.
Renderer: Don't attempt to switch to exclusive fullscreen if "render to main" is enabled.
VideoConfig: Replace "3D Vision" by "Borderless Fullscreen" option.

This option will disable exclusive fullscreen for users who prefer the old behaviour.

Also remove the 3D Vision hack that should no longer be necessary.
CFrame: Don't reassign focus when we're not rendering to the main window.
Frame: Fix RendererHasFocus() again.
Revert "Remove fullscreen flag from video config, detect it from RendererIsFullscreen() instead."

This reverts commit cba836e6217359c4bb58ac15ef2bbf3261ee43fd.
Let the Renderer decide when to exit fullscreen.

This ensures the transition from/to exclusive mode happens while the RenderFrame is fullscreen.

This prevents fullscreen loops and relieves us of having to restore the window size after we exit fullscreen.