Implement channel lists

So this should all work fine. I've tested a couple of modules as well and I (as far as I'm aware) did not break any existing functionality. Doesn't mean that it's completely bug free, but this should allow you to log properly. When I get the chance I'll fix mode parsing as well, but for tonight I am tired. :P