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.
Please no identifiers that start with ``_``. Although in this case it's still legal, some other uses of leading underscores are not allowed, because the C standard reserves them for the standard library. (See section 7.1.3 in the C11 standard.)