Add support for g_autoptr() to our types
g_autoptr() is a macro that was defined in GLib 2.44 that allows for
basic auto-cleanup of variables. One way to add this kind of support
would be through the use of e.g. G_DECLARE_DERIVABLE_TYPE()
for our
declarations, but this would consitute an ABI break (due to the
...Private *
field in the public structs). Instead, we can use
G_DEFINE_AUTOPTR_CLEANUP_FUNC
to manually declare this.
This commit also bumps the minimally required GLib version to 2.44