Restructure bot to load modules rather than subclassing a thread.
This makes it easier to connect to arbitrary networks.
Also included is a cache module which either uses memcached or a pickled file.