Fix global flags in Subcommands

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

Fix global flags in Subcommands
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
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
Merge pull request #112 from AudriusButkevicius/swap

Add Args.Swap command for swapping arguments