Allow to chain subcommands using `command.Use(subcommandName, subcommand)`.
Print command and subcommand short usage when calling an unknown command.
Add global commands to the runner.

- Use a hash to lookup for commands.
- Add more tests for the command and runner execution.
Do not parse the argument for git extensions.
Do not expect a different program name in the usage help.
Use a POSIX compatible flag parser.

So we can use flags before and after arguments, and we can group boolean flags, just like git does.
Set usage function for subcommands.
Allow interspersed arguments.
Assign release create flags to the proper command.
Be consistent about the exec name again.

Because this PR is not about that.
Print subcommand lookup errors.
Merge branch 'master' into subcommands

* master:
  Prevent octokit abstraction from leaking by introducing ClientError
  Use halt for assert_basic_auth
  Give up the last test since it's not related
  Change expectation of the cucumber tests cause it doesn't make sense
  Get 2fa cucumber tests going
  Allow GITHUB_USER and GITHUB_PASSWORD env var
  Use URL from Authorization.App
  Fix completion path
  Change completion script to be executable
  Add update command to the completion list.
  Update completion scripts.

Conflicts:
	Godeps/Godeps.json
Merge pull request #141 from jingweno/subcommands

Subcommands.