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.
Something to fix in a later PR, but want it here just in case someone gets excited and wants to fix it - if either `cmdStop` or `cmdDownload` returns an error, this should probably return it with a nice prefix (like `fmt.Errorf("Failed to stop: %v", err)` or something).