Cache/Data Directory Path Usage Inconsistent
<!-- bug reporting without issue template will be closed automatically -->
## Background
Changing the default cache directory is inconsistent and incomplete. Things *will* break if you do not use the default.

## Expected behavior, english is required
* One setting that *universally* sets the path for SpaceVim to utilize for itself, data files, etc.
* The use of `$XDG_CACHE_DIR` is OK I suppose, but it is still inconsistently used as of now (see code examples below). 
* One other solution might be to use a directory that's *inside* of the cloned SpaceVim repo... Wherever you install the SpaceVim repo is where the data files go. (This approach is used by SpaceMacs) That directory is in `.gitignore` obviously.  
* It would be nice to have an environment variable just for SpaceVim to go along with setting `data_dir` in init.toml that overrides `$XDG_CACHE_DIR` -- maybe `$SPACEVIM_DATA_DIR`

```bash
#pseudocode in bash style
if [[ $SPACEVIM_DATA_DIR != '' ]]; then
  let g:spacevim_data_dir = $SPACEVIM_DATA_DIR
elif [[ <init.toml#options#data_dir> != '']; then
  let g:spacevim_data_dir = <init.toml#options#data_dir>
elif [[ $XDG_CACHE_DIR != '' ]]; then 
  let .... 
else
  let .... 
fi
``` 

NOTE: The above would not fix the code issues identified below that ignore the path setting and use hardcoded paths.

## Other Impacts
Based on reading some of the other issues, I think that at least some of the current and ongoing issues with SpaceVim have this as a root cause. I think that a bunch of loading/configuration issues could be resolved (or at least be made much easier to solve) by fixing the inconsistencies in paths. 

## The reproduce ways from Vim starting (Required!)
Set `data_dir` in `init.toml` as per https://github.com/SpaceVim/SpaceVim/blob/f6ac73b1756223f202ece3b0d6e8aa5997d0bdb1/doc/SpaceVim.txt#L345-L354


## Code Examples
Below are just **some** examples of the inconsistency -- not all. The way I found most of these was with ripgrep in the root cloned repo of SpaceVim:
```bash
rg -i '\.cache'
```

### Core#Statusline
https://github.com/SpaceVim/SpaceVim/blob/f6ac73b1756223f202ece3b0d6e8aa5997d0bdb1/autoload/SpaceVim/layers/core/statusline.vim#L771-L773

https://github.com/SpaceVim/SpaceVim/blob/f6ac73b1756223f202ece3b0d6e8aa5997d0bdb1/autoload/SpaceVim/layers/core/statusline.vim#L787

### gtags
https://github.com/SpaceVim/SpaceVim/blob/f6ac73b1756223f202ece3b0d6e8aa5997d0bdb1/autoload/SpaceVim/layers/gtags.vim#L42

### Neocomplete
https://github.com/SpaceVim/SpaceVim/blob/f6ac73b1756223f202ece3b0d6e8aa5997d0bdb1/bundle/neocomplete.vim/autoload/neocomplete.vim#L258-L275

### Vimfiler
https://github.com/SpaceVim/SpaceVim/blob/f6ac73b1756223f202ece3b0d6e8aa5997d0bdb1/bundle/vimfiler.vim/autoload/vimfiler/variables.vim#L15-L28

### Unite
https://github.com/SpaceVim/SpaceVim/blob/f6ac73b1756223f202ece3b0d6e8aa5997d0bdb1/bundle/unite.vim/autoload/unite.vim#L220-L234

### SpaceVim Installer (install.sh)
The installer is not immune:

https://github.com/SpaceVim/SpaceVim/blob/f6ac73b1756223f202ece3b0d6e8aa5997d0bdb1/docs/install.sh#L175-L183