Don't display completions without any command input.

Before we were displaying all commands for completion
when the user had inputted no text; we now display no
completion until there is something in the ex field.
Better styling for command completion results.

We now show the description as grayed out, similar to the
ack results.

The layout still isn't perfect, but it's good enough to be
getting on with. We still need to have a human-readable
description for each command, rather than the current Nu
code the user sees for them.
Tab focuses the completion list from the ex field.

We now delegate the decision of whether to close the ex
command line on focus loss to the ExCommandLine class,
which has a global perspective on all the components of the
command line.
Give the completion view vico keybindings.

To do that, we introduce a new class, ExCompletionView,
which is used for the NSTableView that displays the
completion results. It uses a ViMap for ex completion that is
similar to the ack window map (in fact, they both include
the same base map, tableNavigationMap) with some
differences for the handling required by how completion
works in the face of the enter, tab, and esc keys.