Defensively protect filesystem from rm commands with empty values
`rm` commands, if left unchecked can be dangerous, potentially destroying
unintended parts of the filesystem.
* Protect `rm` commands from empty variables with `${foo:?}` which will produce
an error if `$foo` is unset or null.
* Create TEMP_DIR with `mktemp`.