Improve generated bin/setup

* Make script idempotent.
* Fail fast with install messages and non-zero exit status.
any reason why we're checking for existence first? won't `mkdir -p` no-op if it already exists?