aliles/begins — pull request #39 by mjdorma (2014-02-16 08:17:16+00:00)
Title: An improved and compatible solution over #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.