Add extended keycode handling, change key release order

- Add KEYEVENTF_EXTENDEDKEY for keys that need it
- When releasing a key, release modifier first
	+ It doesn't really change the behavior, so why traverse reversed?
- Remove accidental left-over prints from debugging
Fix Windows random Unicode character issue

Taking cues from SendInputCTypes, I replaced the Scan code with a function
call to MapVirtualKey. Now the program behaves as expected when doing
complex commands with the Alt and Ctrl keys.