Simplify the keyboard editing events (and add emulated key release events on Windows)

Only use two event types (kArrowKeyPress and kArrowKeyRelease) and add simulated key release events on Windows when getting consecutive same keypressed events (since auto-repeat fires only successive wm_keydown events)