Add support for the XDG Base Directory Specification

You can find the specification here.

This blog post lists the advantages of using the XDG Base Directory Specification as follows:

  • $HOME is a lot less cluttered.
  • Backups are a lot more safer and easier (you know that creating a backup of your $XDG_DATA_HOME along with your files is enough).
  • A lot easier to reset a default configuration if you want/need it (and without any risk of loosing information).
  • Avoid some strange bugs that happen because you had a old version of some configuration file.
  • It is a lot more flexible and portable because no paths are hard-coded. You can use the XDG library that does the job for you or, if you don’t want the dependency, implementing the XDG specification is only a few lines of code.