Merge branch 'release/cogito_v1.0'
Beginning multichannel command support, using indices (created when cogito joins a channel). Potential problem: Commands that have an int as their first argument, as ALL commands arriving in a private message are checked for an int representing the target channel. Not sure if I HAVE any of these.
First bugfix, better int detection. However, might ruin ability to execute in privates.
Turns out farting about with Deferred() in ORSparse was a) useless b) prevented the bot from joining more than one channel from config.channels. REMOVED. Added some dumb index system, reworked explanations and help a bunch to accomodate that. On joining a channel, the bot a) adds it to datapipe.channels b) gives the corresponding Channel() instance a property, ID. Whitelists and blacklists SHOULD handle per-channel now, and channels that have a whitelist/blacklist/min age saved should be exported into a YAML dump (but ONLY on shutdown). Global whitelist still exists though soooo this is dumb. Holy shit it's 1AM my fingers are typing words.
Cleaned up config.py. Added some entries to help.yml for better support. Changed joinChannel (and part) from being standalone to being a Channel class method. Wrote the goddamn README.  Sorted config entries for functions, wisely decided to only give hardcoded (implemented via the same config) admins the ability to make more admins.
Minor bugfix, copy/pasted readme into readme.md. Gonna read up on the syntax some other time.
goddamn readme.md
Update README.md
Fixed channel index assignment not working in a list without None types (channel ghosts). WHOOPS. Fixed hibernation using improper syntax for hasattr() calls. Fixed underage shaming text.
Update README.md

Thanks, Graff, for the Markdown crash course that made this document actually legible.
I shall use the knowledge you imparted to me wisely- for a terrible terrible bot.
Should really look into replacing the YAML dump of all Class objects with sqlite3 or something (Thanks, Graff!). Or write a representor. Whatever, it works for the time being.  Individual whitelists per channel and some other magic may or may not work now.
Merge branch 'multichannel' of https://github.com/Zelnor/cogito into multichannel
Minor bugfixes, better channel serialization on shutdown.
Created .ignore for ops that don't want to get pinged by the bot. Created config entry. Updated help file.
Rejigged age checking. Redirected public shaming of underages to PMs (but left public banter). Might make it an option. config.shame = 0 for PM, 1 for channel >:)
Merge branch 'multichannel'