cmdline: Pass argument iterator by reference
Move commandline interpreter into own namespace
cmdline: Tweak help output
Code style
cmdline: Disallow short options with -- prefix
cmdline: Support a different end for optional args
Rewrite front-end command-line parser

Syntax changes:
- Options with n required arguments will always consume the following
  n command-line tokens as arguments, even if they look like options.
  Example: `arx --user-dir -` will now use "-" as the user dir
- Arguments to short options in the same token as the option itself
  no longer use the = separator.
  Example: `arx -d/foo/bar` instead of `arx -d/foo/bar`
- Added support for positional arguments and the -- special option.

These changes make the syntax match boost::program_options.

See: bug #496