Properly handle set-but-empty $XDG_* variables

Also, don't set $XDG_* variables for child processes.