XDG directory spec

Fix for #109

This is a full implementation that uses $XDG_CONFIG_HOME and $XDG_CONFIG_DIRS.
The rationale is that since CONFIG_HOME corresponds to /etc and DATA_HOME corresponds to /usr/share, everything should go in CONFIG_HOME.

This currently breaks support on Windows and Mac, so I'd like some pointers on what the config directories on those platforms are.
This looks weird, and doesn't look like it guarantees that ``~/.config/`` is created if it's missing. (Yes, I expect such systems to exist.)

Maybe a generic function that recursively creates each directly (like ``mkdir -p``) would be more useful and more readable?