Don't create a Panel for a seperate render window.

Instead of setting RenderParent to null and raising complexity RenderFrame can be its own parent.
Remove CPanel.

Let the RenderFrame handle those messages.
Frame: Make RendererHasFocus() compatible with the new window structure.
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: 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.
D3D: Make the swapchain available outside of the namespace.

This commit reverts a part of pull request #579.
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: Add "Borderless Fullscreen" option.

This option will disable exclusive fullscreen for users who prefer the old behaviour.
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.
Exit exclusive fullscreen when the stop confirmation is shown.

Also have the renderer remember its own fullscreen state. This is done to prevent a case where we exit exclusive fullscreen through the configuration and a focus shift at the same time. In this case the renderer would fail to detect that the fullscreen state was changed.
Frame: Make the fullscreen transitions more reliable.
Renderer: Only notify the host when exiting fullscreen
Remove the 3D Vision hack.

The hack was needed because the Nvidia 3D Vision heuristics are documented to only support surfaces that are the same size as the backbuffer. This would be the case if you enabled the hack and selected the "Auto (Window Size)" internal resolution.

However, on recent drivers the same effect is achieved by selecting the "Auto (Multiple)" internal resolution. Therefore the hack is no longer required.
CFrame: Prevent fullscreen switches if the renderer is halted.