Merge pull request #2686 from unknownbrackets/keymap-win

Clean up keymap for Windows
Begin updating DirectInput for keymapping, and to take it off the legacy path.
Fix horrible styling.
Add POV support.
Add RightStickBind support. It's still not 100% bug free...
Fix inverted buttons, and allow the special keys to be remapped[hopefully..].
Fix default button mappings and incorrect axes(they are wrong on my controller, at least..).

TODO: Fix comments.

Also, is there no way to remove the hack for the special buttons..?
Fix some styling issues, remove some old and irrelevant comments.
Rebase to latest master.
Fix more styling issues.
Make coding style consistent across entire DinputDevice.cpp file.
Layout ApplyButtons to more closely resemble the XInput code.
Fix POV so it resets, cooperates with kbd.

Only resends on change.  DirectInput is all about polling, unfortunately.
We could use a separate thread and wait on events...
Remove some dead code.
Remove the force device setting, map instead.