O-O, formatting improvements

- Make the functions passed to Cli.run() an
  injectable class. This cleans up the Cli class
  internals (passing around the functions was a
  mess) and removes the static display method. It
  also cleans up the callers, who now subclass
  the new CliHelper, instantiate it and pass it in.

- Smarter formatting for display functions in the
  case of a one-item list: the default now prints
  nothing andthe one in pw omits the numbers. 

-
Add method docstrings; correct weird return value.

- CliHelper now has docstrings for its methods.

- CliHelper.preprocess_input() now is expected to
  return True if processing was done and the Cli
  instance need not do anything.