Add ForwardingKeyProcessor that hooks input for all text views.
Proof of concept: working <Shift+Left> in both VsVim and immediate window.
Working <Ctrl+F>.  Handle more arrow commands.
Insert FallbackKeyProcessor between VsVim and Visual Studio for when disabled.
Upgrade to table-driven fallback binding dispatch.
Retrieve removed bindings from settings.
Add settings changed event and use one fallback key processor for all text views.
Comment fallback key processor and provider.
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.
Only fallback in vim buffer if VsVim disabled

My previous change was simply broken for vim buffers.  It was always
routing keyboard input through the fallback processor.  This fixes this
by only routing to the fallback processor on a vim window if VsVim is
currently disabled
Remove the old IKeyUtil implementation

The KeyUtil class was the original implementation of IKeyUtil.  This
implementation attempted to actually read and process keyboard layouts
which it turns out is an incredibly hard task.  It's also simply the
wrong way to approach the problem of key input mapping.  Textual input
is already done by WPF and that can be hooked into directly instead of
doing it (incorrectly) myself.  There are a subset of key strokes that
are meant to be mapped by virtual key and that is being done correctly
at this time.
Moved AlternateKeyUtil to a new location
Moved WordCompletionSession into an accessible class

Part of getting this fix to work is going to require us to update the
completion after it is displayed to the user.  To do this we need a
derived CompletionSet type so that we can augment the displayed items.
Derivation appears to be the only way this can be done.   This is the
first step to providing access
Made IWordUtil usable from a background thread
Factored word completion code into a separate type
Now getting words from all files

It appears though that my use of async here is unfounded.  It could be
done pretty easily in a sync fashion.  Going to switch to that
Word completions now come from all open files

The word completions now come from all files, not just the one in which
the completion takes place

closes #1007
Merge pull request #1237 from jaredpar/fixes-1007

Fixes 1007
Merge pull request #1 from jaredpar/fixes-925

Map letters by key codes
Merge pull request #1232 from ricksladkey/fixes-925

Fixes #925