Improve generated bin/setup

* Make script idempotent.
* Fail fast with install messages and non-zero exit status.
I had seen `mkdir: .git/safe: File exists` on a number of projects' `bin/setup` script and now realize they were lacking `-p`.