Implement proper configuration directories for toxic

This resolves the issue of toxic simply saving its config in './data'. I tested this myself on Linux, and it works. I've had people test it for me on OSX, and they reported no problems. I have not been able to test it on Windows yet, so I don't know if this should be merged, or postponed until someone on Windows has tested it.

The configuration routines have been added as configdir.{c|h}, and can technically be used by other clients as well, by simply changing the CONFIGDIR define to whatever their client's name is.

Thanks to Airwave on IRC, who wrote most of the basic code for get_user_config_dir.