holoirc: multiple updates

* cleanup code
* add some tests
* listen into PM user quits and nick changes
* fix quite a few crashes