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
Whereas here the declaration and assignment is split. With `set -e` and the command substitution sub-shell exiting non-zero, bash terminates the script as expected.

All because it's not on the same line as `local`. Scary.