argparse: use subparsers to support 'zpm <cmd>' style invocation

This means that users must use

  $ zpm new dir

instead of

  $ zpm --new dir
argparse: remove unnecessary handling of default arguments

When no argument is supplied on the command line, argparser will
supply the default value given to our action objects.
argparse: add help texts
argparse: call command function with all parsed args

Attaching the command to execute on a positional argument breaks as
soon as a subcommand needs another positional argument or has optional
arguments. Attaching it as a callback on the subparser is the way
suggested by the argparse documentation.
argparse: move command arg logic into commands
argparse: add commands in sorted order
pep8: add whitespace between functions
Merge pull request #4 from mgeisler/argparse-subparsers

Use argparse subparsers