Logging: Create a sane and extentable logging interface

Also based upon the views-menu stuff.

- [x] Needs to get rid of the Views-menu stuff (Don't think it depends on it)
- [x] Needs documentation
- [x] Needs testing (will be done using the refactor/repoman stuff)

Problems this code still has:
- [ ] Automatic cleaning of expired events is prepared in the consumer interface but not implemented at all
- [ ] No way to get a channel's events.