[cli/engine] Big refactoring

* The initial command is now ShellCommand.
* Calling a CLI instance now returns a generator with the command's
  output items.
* Starting a new CLI is now done with its start method and *only* the
  argv of the desired command.
* A command output generator can be yielded directly to have its output
  and return value become those of the calling command.
* Robot output should more reliably be in robot format.
* OutputCommand is now only used in the shell to report shell errors.
* Anything else?....