A more complete solution then #36

This solution seems more concise and appropriate.  Intended to replace my pull request #36.

Given the following simple program:

```
import begin

@begin.subcommand
def foo(workon=False, execute=True):
    print("workon = %s" % workon)
    print("execute = %s" % execute)

@begin.start
def main(verbose=False, debug=True):
    print("verbose = %s" % verbose)
    print("debug = %s" % debug)
```


We get the following help:
```
>python test.py -h
usage: test.py [-h] [--no-verbose] [--verbose] [--no-debug] [--debug]
               {foo} ...

optional arguments:
  -h, --help    show this help message and exit
  --no-verbose  disable verbose
  --verbose     enable verbose (default)
  --no-debug    disable debug (default)
  --debug       enable debug

Available subcommands:
  {foo}
    foo

>python test.py foo -h
usage: test.py foo [-h] [--no-workon] [--workon] [--no-execute] [--execute]

optional arguments:
  -h, --help    show this help message and exit
  --no-workon   disable workon
  --workon      enable workon (default)
  --no-execute  disable execute (default)
  --execute     enable execute

```

And the expected output ensures.