pick home and config path from environment if set.

@ char *get_config_directory (void)
```c++
 tasprintf (&config_directory, "%s/" PROG_NAME, config_directory);
 // :TODO: someone check whether it could be required to pass tasprintf
 // a tstrdup()ed config_directory instead; works for me without.
 // should work b/c this scope's lifespan encompasses tasprintf()
```
Also the [XDG basedir spec](http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html) requirement to use `~/.config/$APPNAME` as the fallback default is ignored in order to preserve compatibility.