Update README.md

* Add: set -u to error on reference of unset variables
* Add: how to handle possibly un-exported environment variables when `set -u`
* Add: split declaration and command substitution assignment to ensure `set -e` works
* Add: default `TRACE` to null string to avoid failing when `set -u`
* Add: example of these things in action
* Add: unquestionably no hard tabs, and 2-space indentation
* Cleanup: trailing periods on list items
* Cleanup: convert hard tabs in examples to 2-space indentation
This shows how dangerous bash "error handling" can be. The command substitution sub-shell exits non-zero but we continue along and the `set -e` had no effect.

The problem is further exacerbated if *any* part of the command substitution pipeline emits output, `b` gets it all, even if after emitting output, the command that emits it exits non-zero. Be afraid.