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
Compiled and ran locally, parted a chat and just signed out to verify no new issues.
Reviewed at https://reviews.imfreedom.org/r/613/