Map letters by key codes

This switches the processing of letter keys to use key codes instead of
textual input.  The process we are simulating here is the core command
routing of Visual Studio.  This occurs during PreTranslateMessage and
looks at virtual key codes.  Looking at the WPF key entries directly
here gives us the closest behavior.