Contact list rework

Okay, i've been doing this rework for quite some time and i think it's stable enough to be merged to make it some testing and feedback.

So how it looks:
![no image](http://dump.bitcheese.net/images/aruwygy/blight_newcl.png)

Contacts are sorted based on their status and case of equality alphanumerically. Groups are placed to the end. I used mrlib/aligned-pasteboard as basis for new smart-list component.

When contact list has focus contact entries can be browsed via up/down buttons and selected with space.

Since this is a HUGE pull request please give it some testing, although it workes on my machine (C).
This (add-groupchat) at the end is extraneous. The whole procedure creates two groups when there should only be one created. If you omit that last bit, then it will add the correct amount.