Keyed channels

This is a quick and dirty way to add keys to channels. This is a WIP branch to test it all.

- [ ] Needs nickserv too
- [ ] Manual testing by uberj
- [ ] Automated testing