This is a straight conversion, and does not make any attempt to be more asynchronous, as I don't know the protocol between them, but I expect there are ways to reduce the blocking.
Testing Done:
Compile only.
Reviewed at https://reviews.imfreedom.org/r/247/
# UPDATING VERSION NUMBERS FOR RELEASES
#
# The version number is:
# <major>.<minor>.<micro><extra>
#
# micro += 1
#
# If any functions have been added to libpurple, Pidgin, or Finch:
# micro = 0
# minor += 1
#
# If backwards compatibility has been broken in libpurple, Pidgin, or Finch:
# micro = 0
# minor = 0
# major += 1
# purple_soversion += 1
#
# extra should be similar to one of the following: