Xdg support

Adds xdg support to the project so that the user can set the XDG env variables to choose the locations in witch the data, config and cache are located.