This should fix issue where left chats show up in the blist and cannot be removed anymore and broken Adium bookmarks.
This patch should make the whole chat handling much more native to libpurple, in which chats are added through the chatlist,
the join-chat window or automatically when incoming messages are received. Add a new option "Add chats to buddy list" in
case anyone wants the old behavior.
Load full chat info lazily, prevents useless network request and should fix issues with delays through flood errors when handling big amounts of user chats. Handle chat participant deletions and additions correctly and only touch the user list when it is actually updated, this should fix some issues with printing annoying messages in Finch and users not showing up in the buddy list in certain situations. Only add chats to buddy list that are actively joined or receive incoming message, which should help keeping the buddy list more tidy when using much chats.
Check if peer was already allocated in chat_show. The auto-join flag can be safely ignored, all incoming chat messages are added to the chat anyways and will trigger an opening of the chat.