Improve generated bin/setup

* Make script idempotent.
* Fail fast with install messages and non-zero exit status.
I don't think we need to `touch` here. The `>` or `>>` (as @jferris suggests below) will create the file if necessary and I think the `grep` will behave as we'd like if the fie doesn't exist as well.