Add FlagNames() method to Context

It's often useful to list all defined flags prior to launching the
program for debugging/logging purposes. This takes away the boilerplate.
add completion file for zsh
Fix global flags in Subcommands

closes #69
Merge pull request #106 from gemnasium/fix-subcmd-global-flags

Fix global flags in Subcommands
Starting to hack in some env var configuration goodness
Updating structs to use labels, adding tests for env stuff
Updating tests to pass `go vet`

Mostly lack of struct field names in literals and one sprintf format
specifier mismatch.
Adding struct field names to examples in README

Idiomatic Go
Addressing `go vet` offenses
Merge pull request #109 from modcloth/go-vetting

Go vetting
Add HideHelp flag in App and Command
Hide "Options" sections in help, if no flags are defined
Fix Subcommand help text
Fix tests
Add Args.Swap command for swapping arguments

The usecase:
my-cli user <USERID> set <FIELD> <VALUE>

Being able to swap <USERID> with set argument, we can have nested subcommands while preserving all variable arguments along the way.
Add App.RunAndExitOnError shortcut
Run `go vet` as part of Travis build
Merge pull request #116 from modcloth/add-go-vet-to-travis-build

Run `go vet` as part of Travis build
Merge pull request #115 from AudriusButkevicius/hidehelp

Make help command optional
Merge pull request #114 from AudriusButkevicius/shortcut

Add App.RunAndExitOnError shortcut