Match character and backspace methods from ViCompletionController to ViTextView.

This lets them execute in addition to ViTextView's when the
appropriate keys are hit, letting us filter when the user types
and backspaces.
Rename hideCompletionPopup to hideCompletionWindow.

hideCompletionWindow matches better with the
_showingCompletionWindow instance variable name.
Update setCaret:...'s handling for completion.

In particular, >1 character jumps in setCaret: always hide
the completion window if it's up.
Map movement keys to unique methods in ViCompletionController.

We don't want to be triggering the standard up/down
movement in the text view when the completion window is
up; instead, we want to trigger movement through the
completions themselves. Because of how we have the key
handling wired up now, to do this, we just map the key
combos to unique methods in ViCompletionController, rather
than mapping them to methods that have the same name in
ViCompletionController and ViTextView, and everything
takes care of itself.
Don't pass on the terminating key stroke in completion termination.

Because certain termination paths shouldn't necessarily give
insert the terminating key into the document, we let the
ViTextView handler for the termination path decide what to
do with the key.
Remove existing key manager from ViCompletionController.

This was a vestige of the old reversed key handling
mechanism where input went to the completion controller
first and then was forwarded on conditionally to the text.
We now handle input in the text view first.