Alter usage string if variable arguments used

If variable positional arguments are accepted by a decorated main
function, the usage string for the generated command line parser will
use the variable arguments name instead of the default "options" in the
usage string from the help output.
Override option values from system environment

Use environment variables to set the default value for command line
options. This takes precendence over a function argument's default value
but can still be overriden by explicitly passing a new value as a
command line option.
Show default values in command line help

If a command line option has a default value, show this in the command
line help output. This will also reflect any environment variables used
to change default values.