Interpret both empty-string and unset as "empty".

Use the ${variable:+string} form of substitution rather than the
${variable+string} form; the former works when `variable` is unset *or* empty
(read: zero-length), while the latter only tests for unset.