file: be more verbose on error
do not exit lmi meta-command with unsuccessful help

Fixes this behaviour:
$ lmi
> help foo
ERROR: failed to find command "foo"
$

Error is printed but interactive mode is preserved.

Resolves ticket #213
file: let the exception propagate

'Could not get target ...' error description does not say much about the
cause. Let the error propagate upwards.
do not hardcode exit codes

Defined exit codes for lmi meta-command in _metacommand.exit module.
do not exit imode on keyboard interrupt

UP to now, lmi exited interactive mode when Ctrl+C was hit. Also ugly
traceback was printed. Now just debug message is printed.

Resolves ticket #236
print additional line upon EOF in imode

Print another line ending when Ctrl+D is hit (End of File).
Without it user is returned to his shell with unpleasant prefix:

lmi>  ${PS1}$ _
mentioned that help could be used also with command

Resolves ticket #235
handle command import error gracefully

Do not terminate interactive mode when command module fails to import.

Resolves ticket #232, #213
whitespaces be gone
redone interactive mode

* Added support for changing to command namespace.

  Example:
      $ lmi
      lmi> :cd sw
      >sw> help
      ...
      >sw> :cd list
      >>list> pkgs
      >>list> :pwd
      /lmi/sw/list
      >>list> :cd /
      lmi>

* Help and usage messages are now unindented.

Resolves ticket #223
added proper tab-completion for interactive mode

Tab-completion now works for registered commands, their subcommands
(not the options) and built-in commands.
error description improvement
improved help command

Help command behaves consistently in interactive and non-interactive
modes.

Following help requests are now possible:
  lmi> help               # shows available commands
  lmi> help cmd           # prints help of cmd command
  lmi> help cmd subcmd    # prints help of subcmd in cmd namespace
                          # if it has its own usage string
  lmi> cmd --help         # the same as help cmd
  lmi> cmd subcmd --help  # the same as help cmd subcmd

The same works in non-interactive mode.

Resolves tickets #226, #214
stripped the leading new line from lmi help

Leading new line that is printed on:
  lmi --help
is not consistent with other command helps. Got rid of it.
added tests for lmi meta-command
added tests for non-interactive mode

Only help command is tested.
hardware: fixed invocation for multiple hosts

Due to caching in hardware provider. All the results accross various hosts
were the same.
warn about missing usage string

Non-endpoint command shall have its own usage string defined. Even if they have
parent command with usage string.

Missing usage string will prevent :cd command to work with them.
software: redone command interface

list and show subcommands now have their own usage strings. Thus user
can change to their namespace. Also made clear what is being listed
(available vs installed packages).

Added search command - similar to yum's.

Resolves ticket #244
added formatting properties to endpoint commands

End-point commands can define formatting properties such as:
    FMT_NO_HEADINGS    - Allows to turn off printing column headers.
    FMT_HUMAN_FRIENDLY - Make the output values as human friendly as
                         possible.