Scrub trailing whitespace
Add command passthrough support

The passthrough flag causes argument parsing to halt as soon as the command is
reached in the parsing loop, and any remaining arguments become available in
ARGV to the command.

Commands you want to shell out directly need to set passthrough to true.

The motivation for passthrough support is twofold:

 - Calling a command with --help invoked the GLI help, not the native help
   provided by whatever command you want to call.
 - Elimination of double handling of arguments and options. Without this, the
   developer needs to replicate all the arguments and options of the command
   being called within the GLI command definition. Boo.
Merge branch 'gli-2' of github.com:auxesis/gli into gli-2