Direct3D 11 Overlay support, additional Direct3D 9 support, heavy code cleanup

This PR is obsoleting the other two open DX11 PRs
* #28 
* #62 

It adds **overlay support for Direct3D 11**.
This has been verified in Crysis 2 (main menu).
Additionally, as verified with a self compiled SimpleSample.exe from the DirectX SDK using Direct3D 9 - the direct3d 9 **overlay now displays in more cases** as well.

It adds the **fx11 (Effects 11) library** into overlay/effects11.
A qmake project file has been added to allow compilation of it as a dependency. On building the mumble_ol.dll (overlay) it is added as a static library, thus no additional dll is necessary.

**Fx11 is MS-PL licensed**. MS-PL is incompatible to the GPL.
As such, to be able to distribute the overlay dll, we will have to distribute our windows binaries no longer as GPL but under our more liberal license.
This is subject to another PR.

A build has been *tested* to not break stuff on Windows 7 x64 (pre-SP) with
* Crysis 2 (11)
* Blacklight: Retribution (11)
* D3D examples (SimpleSample.exe for 9, 10, 11)
* Smite
* Guild Wars 1
* Guild Wars 2
* Dota 2
* Awesomenauts
* Wolfenstein: Enemy Territory (OpenGL)
* Team Fortress 2 (menu)
* Battlefield: Bad Company 2
* League of Legends (menu)

I am not sure - can someone review all of this?
I am feeling comfortable with my changes, merging them into master for broad testing.

I did not review nyetwurks d3d11 state block and drawing code (yet).
But it works.

I would really like not having to go through all commits again and reorganizing them.
The more recent one do have some self-contained logic - not so sure about the earlier ones.
Feel free to suggest stuff though.
Lets hope reordering does not cause conflicts thought (which it probably will).

----

**Notes / useful info:**

From #28 :
https://github.com/mumble-voip/mumble/pull/28#issuecomment-2557999

    1) DX10 CreateEffect needs fx_4_0, but DX11 Create Effect needs fx_5_0.
    
    Unfortunately, fxc outputs a header that generates a global g_main const.
    So we have to have fxc output two different overlay include files, using different name spaces.

2) Most games are multithreaded, and since we dont have StateBlocks in DX11, and you have to use a DeviceContext, you can't use an ImmediateContext, you have to use a DeferredContext. Fortunately, kissaki already provided the code for it, so i just used that instead (including the CommandList code in draw()) , and bingo, everything works.

Question about the Effects library: i noticed your overlay.pro references the local directory and not the dxsdk directory. Should mumble be just copying the Effects source files as is into the repo? are there licensing issues? if there are licensing issues, then more crazy things have to be added to the build instructions.


https://github.com/mumble-voip/mumble/pull/28#issuecomment-2560251
> We have to patch the Effects source files (I have a modified version somewhere) to avoid depending on a specific DirectX […]
The MS-PL fx11 library release does no longer depend on the SDK from what I understood.
The shader compiler for generation of the hex file is necessary for compilation though.


https://github.com/mumble-voip/mumble/pull/28#issuecomment-7332564
> Unfortunately the overlay does not work in the game The Secret World (if you use DirectX11).
If someone could (then/later) test this and verify it is working (now)?