Improve Command implementation and user-visible help

While working on other stuff, I noticed that the CLI handling could use a lot of improvement. This improves the state of command-line help, while also cleaning up the code implementing the commands themselves.

```
$ carthage help
Available commands:

   bootstrap   Check out and build the project's dependencies
   build       Build the project's dependencies
   checkout    Check out the project's dependencies
   help        Display general or command-specific help
   update      Update and rebuild the project's dependencies
   version     Display the current version of Carthage
```

```
$ carthage help bootstrap
Check out and build the project's dependencies

[--configuration Release]
	the Xcode configuration to build (if --build is enabled)

[--no-build]
	skip the building of dependencies after updating

[--use-ssh]
	use SSH for downloading GitHub repositories

[/Users/justin/GitHub/Carthage]
	the directory containing the Carthage project
```

```
$ carthage help build
Build the project's dependencies

[--configuration Release]
	the Xcode configuration to build

[--no-skip-current]
	build the Carthage project in addition to its dependencies

[/Users/justin/GitHub/Carthage]
	the directory containing the Carthage project
```

```
$ carthage help update
Update and rebuild the project's dependencies

[--configuration Release]
	the Xcode configuration to build (if --build is enabled)

[--no-build]
	skip the building of dependencies after updating

[--use-ssh]
	use SSH for downloading GitHub repositories

[/Users/justin/GitHub/Carthage]
	the directory containing the Carthage project
```

```
$ carthage help help
Display general or command-specific help

[(string)]
	the command to display help for
```
@robrix Thanks!