Adding VersionPrinter and tests.
making all pathing for cli local in tests for easier fork testing
running go fmt
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