Add completionController:didTerminateWithKey:selectedCompletion:.

This is the delegate function on ViCompletionDelegate that
will be called when a completion is selected or the
completion popup is cancelled.

This currently isn't hooked up, but we've moved the
completion acceptance logic into the callback. There are still
several steps to get things behaving non-modally.
Autocomplete no longer assumes modal completion popup.
Rearrange some of the resources.

In particular, put Nu code in its own groups.
Completion window is now an NSPanel.

We turn on becomesKeyOnlyIfNeeded and floatingPanel so
that it behaves more or less like it has until now, but without
actually taking focus.
ViCompletionController chooseFrom:* now returns a BOOL.

We only return YES if the completion popup was displayed;
otherwise, we return NO. We won't display the popup if we
have no completions to display, or if we're in aggressive
mode and there is only one completion.
Invoke delegate callback when doing an aggressive completion.
Set _showingCompletionWindow to result of chooseFrom:*.
Run completion code even if the completion window is showing.

This will let us filter by repeatedly invoking the completion
window, which will only "show" once.
Return _showingCompletionWindow from presentCompletionsOf:*.
Add hideCompletionPopup method to ViTextView.
Present the completion popup at each keystroke if needed.

This also includes hiding it if unneeded.
When terminating, forward terminating key if no completion was selected.
Declare sharedController as returning a ViCompletionController.
Expose vi command methods in ViCompletionController.

ViCompletionController no longer gets text input directly,
but instead it goes through ViTextView, which needs to be
able to invoke those methods on ViCompletionController.
Expose bridge functions for completion map.
Use the completion map in ViTextView when completion is up.

We restore the insert map when the completion window gets
dismissed.
Completion map now includes insertion map and defaults to input_character:.
Completion map sends some keystrokes to completion-specific methods.

These are methods that then forward on to
ViCompletionController counterparts.
Send completion termination through terminateWithKey:completion:

This takes care of setting the _terminatingKey instance
variable, calling the delegate function, hiding the window,
and resetting the controller.
Completion controller no longer handles backspace.