Style, convention, and safety fixes

These are many small changes to

* bring the style in line with Go conventions
* not ignore errors and instead fail early, showing them to the user
* make this program friendlier to run when invoked directly (rather than by an init system) by showing error, printing usage, etc