Implemented DirectInput8. Moved all keybind code, including the hover engine, to CDirectInput.h. As a result, all old keybind code was redone using the new functionality. Holding the key will operate correctly (in the hover engine, holding still works...otherwise, holding the key only fires the event once). No more GetAsyncKeyState/GetKeyState!

Todo: Implement mouse processing to the engine.