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).
here? 
(let ([groups-count (hash-count cur-groups)])
                      (add-new-group (format "Groupchat #~a" groups-count)))
it's based on count of groups


Do you think user should see tox internal group ids?