Fix atypical error handling in `cmd` functions.

Closes #194

More changes to make the code base more Go idiomatic. Specifically, removed the logf utility function in favor of Printf. Additionally, where `cmd` functions were printing out an error and returning an error code, they now return the error directly, allowing main to print them before exiting with a non-zero code.
So in `main()`, you'd have something like:
```go
	} else {
		fmt.Fprintf(os.Stderr, "error: %v\n", err)
		if _, ok := err.(unknownCommandError); ok {
			usageShort()
		}
```