fix(systemd): fix logic bug: break vs. return

Break only exits from the innermost for/select/switch.
Includes a couple minor style tweaks nearby also.
Merge pull request #481 from burke/fixbreak

Fix logic bug where break didn't exit as many levels as intended.
style(*): ran gofmt -s and made golint changes

* omitting type annotations for literals when inferrable from context
* (`gofmt -s`)
* omitting second `range` key when ignored (`k, _` -> `k`, `gofmt -s`)
* Idiomatic error messages: Start lowecase, except where referencing an
* uppercase value/type, no terminal punctuation (`golint`)
* `errors.New(fmt.Sprintf(args))` -> `fmt.Errorf(args)` (`golint`)
* `if foo { return bar } else { baz }` -> `if foo { return bar } baz`
* (`golint`)