Introduce the VIM_CACHE_DIR concept.

This will eventually be the place that any cache-related items in Vim
can be stored, like persistent undo data.
Prefer to use $VIM_CACHE_DIR/undo for undodir.

If $VIMFILES/.undo exists, it'll use that instead.  This also removes
the undo directory, but the contents will be left on the user's machine
until they move it to $VIM_CACHE_DIR/vim/undo ($XDG_CACHE_HOME/vim/undo,
by default).  An ignore was added for the .undo directory, just to keep
things clean.
Fixup undo directory-setting logic:

- Add missing test ``!= ""`` for $XDG_CACHE_HOME.

- Point &undodir at ``$VIM_CACHE_DIR/undo`` (without a ``.``).