Updated TAB-completion handling.

  We've changed (and broken in the process) the code that handles
 the expansion of input when tab is pressed.  Rather than returning
 a single match we now return a vector of possible matches:

    * If the vector is empty then nothing happens.

    * If the vector has one member then we use it.

    * If the vector has >1 entry then we present a menu which the
      user can use to select their preferred choice.

  TODO:  Handle the completion, as we did before.

  TODO:  Allow "esc" to cancel the completion menu, leaving things
         unchanged.

  This updates #90.