Move more common properties to the front of property lists,
so that they can be passed as constructor arguments.
E.g.
parser:option "-p" "--port"
:description "Port number."
:default "8080"
:convert(tonumber)
can now be expressed as
parser:option("-p --port", "Port number.", "8080", tonumber)
Allow setting several names using 'name' property instead, e.g.
':name "-f --foo"' instead of ':aliases {"-f", "--foo"}'.
This change breaks documented interface of 0.3.x.
Disable undocumented ability to specify aliases as arguments
for constructors, e.g. parser:option("-f", "--foo"), and instead
order properties and pass constructor arguments to them.
E.g. parser:argument("foo", "A foo that bars") sets argument
name to foo and description to "A foo that bars".
TODO: remove "aliases" property, instead allow setting several
names in one string by separating them using space.
TODO: reorder properties so that most useful ones could be used
as constructor arguments.
* Help option is only created once per parser, several :prepare() invocations do not create extra options.
* In :add_help(foo), foo is passed to the help option overriding default name, see spec/help_spec.lua @ 24