Support unread count, sort of

First, this code won't really check if contact is on the list and won't
add it if necessary. And as it doesn't really check if account is
correct, this implementation is very name-clashing prone. I don't wanna
know what happens if you have a contact with the same JID on multiple
accounts.
Make it handle account IDs

Name-clashing issues fixed. It should also add contacts that are not on
the list when message is received but I'm not sure if it crashes or not,
need to check that. Oh, and duplication was fixed as well.
Presence~!

Ok, so the presence is here. Chats dialog sorta works. Context is being
switched automatically. Contact list is unified. No name clashing and
crap. So now, it's time to do some more stuff for managing it, fill the
gaps, get VCards running, clean this up etc.
Roster management

Contact name changes, checked.
Renaming contacts, checked.
Adding contacts, checked.

Progress ^^