return selected command as parsing result

For CLIs with (sub-) commands, it is required to be able to determine
which commands have been selected. Add this information to the parsing
result.
enhance help system: support sub-commands

Support printing of command-specific help.

Example:
  '--help'
will print global options and top-level commands, while
  '--help command1'
will print options and sub-commands of 'command1' (and only those)