lightirc: multiple updates

* fix multiple null pointer bugs
* use Channel's user list rather than maintaining fragment's own
* fix other bugs
* really cleanup code
* add ability to stop join/part/quits etc.