Make ExTextField aware of the current ex mode.

This means ExTextField now knows if it's in command or search mode.
Keep search and command history separately.

Before the two were combined; we now track the two separately, and
persist them separately between startups.
Add ExCommandLine class that wraps the ExTextField.

This will be used to provide functionality beyond simple history in the
command line. For now, it just draws a background gradient on the
floating command line. There is also a bit of code for drawing a shadow
around the command box, but it's not working yet.
Working shadow for the ex command line.
ViTextView now posts NSTextDidChangeNotifications.

Before, because we were overriding insertText:replacementRange: without
calling the super implementation, these notifications were never being
posted.
Refactor editor fetch into ExTextField#editor.

Before we were doing the same field editor lookup in a bunch of places.
Post NSTextDidChangeNotification on backspace in ViTextView.

Because backspace is handled separately from text insertion (since
backspace can mean different things depending on mode), the original
restoration of the notification did not apply to it.
ExCommandCompletion sends the ExCommand with ViCompletions.

We use the representedObject property for that information.
Display representedObject in ViCompletion description.