New DirectInputEmulator

I've rewritten the DirectInputEmulator to make sending complex key combinations vastly easier. It has the downside of requiring a bit more code to actually create commands (though that can be simplified further if necessary) however it allows us to generate key combinations (including sending mouse buttons in conjunction with keyboard buttons - for operations such as Watch That Direction etc.).

Let me know if this poses an issue for your serialization of command chunks, I can work something out to make that possible if necessary.