pidgin/pidgin

Use G_DECLARE_DERIVABLE_TYPE for PurpleConversation and additional cleanups

The setters for PurpleConversation are kind of crappy because of the
conversation cache in the purple_conversations api, which we'll address at a
later time.

Testing Done:
Compiled and ran locally, parted a chat and just signed out to verify no new issues.

Reviewed at https://reviews.imfreedom.org/r/613/
finch/finch.c
finch/gntaccount.c
finch/gntblist.c
finch/gntconn.c
finch/gntconv.c
finch/gntdebug.c
finch/gntidle.c
finch/gntlog.c
finch/gntmedia.c
finch/gntmenuutil.c
finch/gntnotify.c
finch/gntplugin.c
finch/gntprefs.c
finch/gntrequest.c
finch/gntroomlist.c
finch/gntstatus.c
finch/gntui.c
finch/gntxfer.c
finch/libfinch.c
finch/plugins/gntclipboard.c
finch/plugins/gntgf.c
finch/plugins/gnthistory.c
finch/plugins/gnttinyurl.c
finch/plugins/grouping.c
finch/plugins/lastlog.c
libpurple/account.c
libpurple/accounts.c
libpurple/action.c
libpurple/blistnode.c
libpurple/buddy.c
libpurple/buddyicon.c
libpurple/buddylist.c
libpurple/chat.c
libpurple/circularbuffer.c
libpurple/cmds.c
libpurple/connection.c
libpurple/contact.c
libpurple/conversations.c
libpurple/core.c
libpurple/countingnode.c
libpurple/debug.c
libpurple/eventloop.c
libpurple/example/nullclient.c
libpurple/glibcompat.c
libpurple/group.c
libpurple/idle.c
libpurple/image.c
libpurple/image-store.c
libpurple/keyring.c
libpurple/log.c
libpurple/media/backend-fs2.c
libpurple/media/backend-iface.c
libpurple/media.c
libpurple/media/candidate.c
libpurple/media/codec.c
libpurple/media/enum-types.c
libpurple/mediamanager.c
libpurple/memorypool.c
libpurple/nat-pmp.c
libpurple/network.c
libpurple/notify.c
libpurple/pluginpref.c
libpurple/plugins/autoaccept.c
libpurple/plugins/buddynote.c
libpurple/plugins.c
libpurple/plugins/idle.c
libpurple/plugins/joinpart.c
libpurple/plugins/keyrings/internalkeyring.c
libpurple/plugins/keyrings/kwallet/purplekwallet.cpp
libpurple/plugins/keyrings/secretservice.c
libpurple/plugins/keyrings/wincred.c
libpurple/plugins/log_reader.c
libpurple/plugins/notification-sound/notification-sound.c
libpurple/plugins/psychic.c
libpurple/plugins/purple-toast.c
libpurple/plugins/statenotify.c
libpurple/prefs.c
libpurple/protocol.c
libpurple/protocols/bonjour/bonjour.c
libpurple/protocols/bonjour/bonjour_ft.c
libpurple/protocols/bonjour/buddy.c
libpurple/protocols/bonjour/dns_sd_proxy.c
libpurple/protocols/bonjour/mdns_avahi.c
libpurple/protocols/bonjour/mdns_common.c
libpurple/protocols/bonjour/mdns_dns_sd.c
libpurple/protocols/bonjour/mdns_win32.c
libpurple/protocols/bonjour/parser.c
libpurple/protocols/bonjour/xmpp.c
libpurple/protocols.c
libpurple/protocols/facebook/api.c
libpurple/protocols/facebook/data.c
libpurple/protocols/facebook/facebook.c
libpurple/protocols/facebook/http.c
libpurple/protocols/facebook/json.c
libpurple/protocols/facebook/mqtt.c
libpurple/protocols/facebook/thrift.c
libpurple/protocols/facebook/util.c
libpurple/protocols/gg/account.c
libpurple/protocols/gg/avatar.c
libpurple/protocols/gg/blist.c
libpurple/protocols/gg/chat.c
libpurple/protocols/gg/edisc.c
libpurple/protocols/gg/gg.c
libpurple/protocols/gg/html.c
libpurple/protocols/gg/image-prpl.c
libpurple/protocols/gg/keymapper.c
libpurple/protocols/gg/libgadu-events.c
libpurple/protocols/gg/libgaduw.c
libpurple/protocols/gg/message-prpl.c
libpurple/protocols/gg/multilogon.c
libpurple/protocols/gg/oauth/oauth.c
libpurple/protocols/gg/oauth/oauth-purple.c
libpurple/protocols/gg/pubdir-prpl.c
libpurple/protocols/gg/purplew.c
libpurple/protocols/gg/resolver-purple.c
libpurple/protocols/gg/roster.c
libpurple/protocols/gg/servconn.c
libpurple/protocols/gg/status.c
libpurple/protocols/gg/tcpsocket.c
libpurple/protocols/gg/utils.c
libpurple/protocols/gg/validator.c
libpurple/protocols/gg/xml.c
libpurple/protocols/irc/cmds.c
libpurple/protocols/irc/dcc_send.c
libpurple/protocols/irc/irc.c
libpurple/protocols/irc/msgs.c
libpurple/protocols/irc/parse.c
libpurple/protocols/jabber/adhoccommands.c
libpurple/protocols/jabber/auth.c
libpurple/protocols/jabber/auth_cyrus.c
libpurple/protocols/jabber/auth_digest_md5.c
libpurple/protocols/jabber/auth_plain.c
libpurple/protocols/jabber/auth_scram.c
libpurple/protocols/jabber/auth_webex.c
libpurple/protocols/jabber/bosh.c
libpurple/protocols/jabber/buddy.c
libpurple/protocols/jabber/caps.c
libpurple/protocols/jabber/chat.c
libpurple/protocols/jabber/data.c
libpurple/protocols/jabber/disco.c
libpurple/protocols/jabber/ibb.c
libpurple/protocols/jabber/iq.c
libpurple/protocols/jabber/jabber.c
libpurple/protocols/jabber/jingle/content.c
libpurple/protocols/jabber/jingle/iceudp.c
libpurple/protocols/jabber/jingle/jingle.c
libpurple/protocols/jabber/jingle/rawudp.c
libpurple/protocols/jabber/jingle/rtp.c
libpurple/protocols/jabber/jingle/session.c
libpurple/protocols/jabber/jingle/transport.c
libpurple/protocols/jabber/jutil.c
libpurple/protocols/jabber/message.c
libpurple/protocols/jabber/oob.c
libpurple/protocols/jabber/parser.c
libpurple/protocols/jabber/pep.c
libpurple/protocols/jabber/ping.c
libpurple/protocols/jabber/presence.c
libpurple/protocols/jabber/roster.c
libpurple/protocols/jabber/si.c
libpurple/protocols/jabber/tests/test_jabber_caps.c
libpurple/protocols/jabber/tests/test_jabber_digest_md5.c
libpurple/protocols/jabber/tests/test_jabber_jutil.c
libpurple/protocols/jabber/tests/test_jabber_scram.c
libpurple/protocols/jabber/useravatar.c
libpurple/protocols/jabber/usermood.c
libpurple/protocols/jabber/usernick.c
libpurple/protocols/jabber/usertune.c
libpurple/protocols/jabber/xdata.c
libpurple/protocols/jabber/xmpp.c
libpurple/protocols/novell/nmconference.c
libpurple/protocols/novell/nmconn.c
libpurple/protocols/novell/nmcontact.c
libpurple/protocols/novell/nmevent.c
libpurple/protocols/novell/nmfield.c
libpurple/protocols/novell/nmmessage.c
libpurple/protocols/novell/nmrequest.c
libpurple/protocols/novell/nmrtf.c
libpurple/protocols/novell/nmuser.c
libpurple/protocols/novell/nmuserrecord.c
libpurple/protocols/novell/novell.c
libpurple/protocols/null/nullprpl.c
libpurple/protocols/sametime/im_mime.c
libpurple/protocols/sametime/sametime.c
libpurple/protocols/sametime/tests/test_sametime_im_mime.c
libpurple/protocols/silc/buddy.c
libpurple/protocols/silc/chat.c
libpurple/protocols/silc/ft.c
libpurple/protocols/silc/ops.c
libpurple/protocols/silc/pk.c
libpurple/protocols/silc/silc.c
libpurple/protocols/silc/util.c
libpurple/protocols/silc/wb.c
libpurple/protocols/zephyr/ZAsyncLocate.c
libpurple/protocols/zephyr/ZCkAuth.c
libpurple/protocols/zephyr/ZCkIfNot.c
libpurple/protocols/zephyr/ZClosePort.c
libpurple/protocols/zephyr/ZCmpUID.c
libpurple/protocols/zephyr/ZCmpUIDP.c
libpurple/protocols/zephyr/zephyr.c
libpurple/protocols/zephyr/zephyr_html.c
libpurple/protocols/zephyr/ZFlsLocs.c
libpurple/protocols/zephyr/ZFlsSubs.c
libpurple/protocols/zephyr/ZFmtAuth.c
libpurple/protocols/zephyr/ZFmtList.c
libpurple/protocols/zephyr/ZFmtNotice.c
libpurple/protocols/zephyr/ZFmtRaw.c
libpurple/protocols/zephyr/ZFmtRawLst.c
libpurple/protocols/zephyr/ZFmtSmRaw.c
libpurple/protocols/zephyr/ZFreeNot.c
libpurple/protocols/zephyr/ZGetLocs.c
libpurple/protocols/zephyr/ZGetSender.c
libpurple/protocols/zephyr/ZGetSubs.c
libpurple/protocols/zephyr/ZGetWGPort.c
libpurple/protocols/zephyr/ZhmStat.c
libpurple/protocols/zephyr/ZIfNotice.c
libpurple/protocols/zephyr/ZInit.c
libpurple/protocols/zephyr/Zinternal.c
libpurple/protocols/zephyr/ZLocations.c
libpurple/protocols/zephyr/ZMakeAscii.c
libpurple/protocols/zephyr/ZMkAuth.c
libpurple/protocols/zephyr/ZNewLocU.c
libpurple/protocols/zephyr/ZOpenPort.c
libpurple/protocols/zephyr/ZParseNot.c
libpurple/protocols/zephyr/ZPeekNot.c
libpurple/protocols/zephyr/ZPeekPkt.c
libpurple/protocols/zephyr/ZPending.c
libpurple/protocols/zephyr/ZReadAscii.c
libpurple/protocols/zephyr/ZRecvNot.c
libpurple/protocols/zephyr/ZRecvPkt.c
libpurple/protocols/zephyr/ZRetSubs.c
libpurple/protocols/zephyr/ZSendList.c
libpurple/protocols/zephyr/ZSendNot.c
libpurple/protocols/zephyr/ZSendPkt.c
libpurple/protocols/zephyr/ZSetDest.c
libpurple/protocols/zephyr/ZSubs.c
libpurple/protocols/zephyr/ZVariables.c
libpurple/protocols/zephyr/ZWait4Not.c
libpurple/proxy.c
libpurple/purpleaccountoption.c
libpurple/purpleaccountpresence.c
libpurple/purpleaccountusersplit.c
libpurple/purpleattachment.c
libpurple/purpleattentiontype.c
libpurple/purplebuddypresence.c
libpurple/purplechatconversation.c
libpurple/purplechatuser.c
libpurple/purpleconversation.c
libpurple/purplecredentialmanager.c
libpurple/purplecredentialprovider.c
libpurple/purple-gio.c
libpurple/purpleimconversation.c
libpurple/purplekeyvaluepair.c
libpurple/purplemarkup.c
libpurple/purplemessage.c
libpurple/purplenoopcredentialprovider.c
libpurple/purpleoptions.c
libpurple/purplepresence.c
libpurple/purpleprotocolattention.c
libpurple/purpleprotocolchat.c
libpurple/purpleprotocolclient.c
libpurple/purpleprotocolfactory.c
libpurple/purpleprotocolim.c
libpurple/purpleprotocolmedia.c
libpurple/purpleprotocolmanager.c
libpurple/purpleprotocolprivacy.c
libpurple/purpleprotocolserver.c
libpurple/purpleuiinfo.c
libpurple/purplewhiteboard.c
libpurple/purplewhiteboarduiops.c
libpurple/queuedoutputstream.c
libpurple/request.c
libpurple/request-datasheet.c
libpurple/roomlist.c
libpurple/savedstatuses.c
libpurple/server.c
libpurple/signals.c
libpurple/smiley.c
libpurple/smiley-custom.c
libpurple/smiley-list.c
libpurple/smiley-parser.c
libpurple/smiley-theme.c
libpurple/status.c
libpurple/stun.c
libpurple/tests/test_account_option.c
libpurple/tests/test_attention_type.c
libpurple/tests/test_circular_buffer.c
libpurple/tests/test_credential_manager.c
libpurple/tests/test_credential_provider.c
libpurple/tests/test_image.c
libpurple/tests/test_keyvaluepair.c
libpurple/tests/test_markup.c
libpurple/tests/test_protocol_action.c
libpurple/tests/test_protocol_attention.c
libpurple/tests/test_protocol_xfer.c
libpurple/tests/test_queued_output_stream.c
libpurple/tests/test_smiley.c
libpurple/tests/test_smiley_list.c
libpurple/tests/test_trie.c
libpurple/tests/test_ui.c
libpurple/tests/test_util.c
libpurple/tests/test_xmlnode.c
libpurple/theme.c
libpurple/theme-loader.c
libpurple/theme-manager.c
libpurple/trie.c
libpurple/upnp.c
libpurple/util.c
libpurple/version.c
libpurple/win32/libc_interface.c
libpurple/win32/win32dep.c
libpurple/xfer.c
libpurple/xmlnode.c
pidgin/gtkaccount.c
pidgin/gtkblist.c
pidgin/gtkconn.c
pidgin/gtkconv.c
pidgin/gtkdialogs.c
pidgin/gtkdnd-hints.c
pidgin/gtkicon-theme.c
pidgin/gtkicon-theme-loader.c
pidgin/gtkidle.c
pidgin/gtkmedia.c
pidgin/gtknotify.c
pidgin/gtkpluginpref.c
pidgin/gtkprefs.c
pidgin/gtkprivacy.c
pidgin/gtkrequest.c
pidgin/gtkroomlist.c
pidgin/gtksavedstatuses.c
pidgin/gtkscrollbook.c
pidgin/gtksmiley-manager.c
pidgin/gtksmiley-theme.c
pidgin/gtkstatusbox.c
pidgin/gtkstatus-icon-theme.c
pidgin/gtkutils.c
pidgin/gtkwhiteboard.c
pidgin/gtkxfer.c
pidgin/libpidgin.c
pidgin/minidialog.c
pidgin/pidginabout.c
pidgin/pidginaccountactionsmenu.c
pidgin/pidginaccountchooser.c
pidgin/pidginaccountfilterconnected.c
pidgin/pidginaccountfilterprotocol.c
pidgin/pidginaccountsmenu.c
pidgin/pidginaccountstore.c
pidgin/pidginactiongroup.c
pidgin/pidginapplication.c
pidgin/pidginattachment.c
pidgin/pidginavatar.c
pidgin/pidgin.c
pidgin/pidgincellrendererexpander.c
pidgin/pidginclosebutton.c
pidgin/pidgincontactcompletion.c
pidgin/pidgincontactlist.c
pidgin/pidginconversationwindow.c
pidgin/pidgincredentialproviderstore.c
pidgin/pidgincredentialspage.c
pidgin/pidgindebug.c
pidgin/pidgindialog.c
pidgin/pidgingdkpixbuf.c
pidgin/pidgininvitedialog.c
pidgin/pidginlog.c
pidgin/pidginmenutray.c
pidgin/pidginmessage.c
pidgin/pidginmooddialog.c
pidgin/pidginplugininfo.c
pidgin/pidginpluginsdialog.c
pidgin/pidginpluginsmenu.c
pidgin/pidginpresence.c
pidgin/pidginpresenceicon.c
pidgin/pidginprotocolchooser.c
pidgin/pidginprotocolstore.c
pidgin/pidginstock.c
pidgin/pidginstylecontext.c
pidgin/pidgintalkatu.c
pidgin/pidgintooltip.c
pidgin/pidginwindow.c
pidgin/plugins/disco/gtkdisco.c
pidgin/plugins/disco/resources/disco.ui
pidgin/plugins/disco/xmppdisco.c
pidgin/plugins/gestures/gestures.c
pidgin/plugins/gestures/stroke.c
pidgin/plugins/gestures/stroke-draw.c
pidgin/plugins/gtkbuddynote.c
pidgin/plugins/iconaway.c
pidgin/plugins/notify.c
pidgin/plugins/relnot.c
pidgin/plugins/spellchk.c
pidgin/plugins/transparency.c
pidgin/plugins/unity.c
pidgin/plugins/xmppconsole/console.ui
pidgin/plugins/xmppconsole/xmppconsole.c
pidgin/resources/About/about.ui
pidgin/resources/Accounts/actionsmenu.ui
pidgin/resources/Accounts/chooser.ui
pidgin/resources/Accounts/menu.ui
pidgin/resources/Avatar/avatar.ui
pidgin/resources/Avatar/menu.ui
pidgin/resources/BuddyList/window.ui
pidgin/resources/closebutton.ui
pidgin/resources/Conversations/invite_dialog.ui
pidgin/resources/Conversations/menu.ui
pidgin/resources/Conversations/window.ui
pidgin/resources/Debug/debug.ui
pidgin/resources/Debug/plugininfo.ui
pidgin/resources/Log/log-viewer.ui
pidgin/resources/Plugins/dialog.ui
pidgin/resources/Plugins/menu.ui
pidgin/resources/Prefs/credentials.ui
pidgin/resources/Prefs/prefs.ui
pidgin/resources/Prefs/vv.ui
pidgin/resources/Privacy/dialog.ui
pidgin/resources/Protocols/chooser.ui
pidgin/resources/Roomlist/roomlist.ui
pidgin/resources/Whiteboard/whiteboard.ui
pidgin/resources/Xfer/xfer.ui
pidgin/win32/gtkwin32dep.c
pidgin/win32/untar.c
pidgin/win32/winpidgin.c