look before clobbering global environment variables

Previously, I was setting environment variables like XDG_CONFIG_HOME by
just aribtrarily binding them to "$HOME/.config" - which, indeed,
involved a lookup in the global environment for the variable HOME.

So why not check for XDG_CONFIG_HOME as well?

This creates a new function, my-set-environment-or-default, which takes
an environment variable name and an optional default argument. If the
environment variable lookup fails and a default value is provided, then
the environment variable is set from that default.
my-eshell: doc/style fixups
my-eshell: add comment at top of file
evil: fancy smart indent behavior