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)