Create a this.cacheRoot(), like this.sourceRoot() or this.destinationRoot()

+ Unit test added
+ Support XDG specs

Fix #287
Merge branch 'jdespatis-cache-root'