holoirc: loads of updates

* cleanup loads of code
* change the way messages work - they are added to the adapter directly if possible - otherwise they
  get appended to the buffer in the IRC backend
* save the messages when pausing fragments and reread the copy from memory when resuming - similar to
  the way shared preferences work
* refactor a bunch of code to make it much clearer what's going on