Add storage dictionary class (for config files) to mx/util/__init__.py.
Add docstrings and client OS detection functions to mx/util/version.py.
Config file parsing and creating utility. This will need to be refactored to
use JSON, following leap_client, and may tie into soledad.
Moved exceptions to their own file to keep the code cleaner.
Paranoia led me to adopt AGPLv3 over my usual favourite, WTFPL.
Add UUID creator to alias_resolver.
Add default boilerplate config to the config file creator.
Separated CouchDB code into mx/couchdb.py and added fake-SMTP status codes to
alias_resolver.
Fix typo.
Renamed alias_resolver.createID() to alias_resolver.aliasToUUID(), renamed
AliasResolver classes, fixed docstrings and imports.
Add TODO to alias_resolver.
Add callbacks to AliasResolverFactory, these need to be hooked to
couchdb.ConnectedCouchDB().