contacts/subscription-states test: redesign to fix a race condition

Under GDBus, we can receive more than one signal in the same iteration
of the main loop. I missed this instance in my initial GDBus port
because it's inconsistent and hard to reproduce, but it's the same
anti-pattern: we're waiting for two signals that both happen as a
result of the same action:

    signal_cb (...)
    {
      g_main_loop_quit (loop);
    }
    ...
    test (...)
    {
      ...
      g_main_loop_run (loop);
      ... things without side-effects ...
      g_main_loop_run (loop);
      ...
    }

I think it's better style for test code to be more explicit and have
less spooky-action-at-a-distance, anyway.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
make-version-script: output symbols in sorted order for easier diffing

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
Remove obsolete contact-list-channel-internal.h

The contact list mixin doesn't need channels any more.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
TpAccount:connection-error-details, TpAccount::status-changed: use GVariant

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=76369

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
TpCapabilities: operate in terms of GVariant

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
Remove tp_connection_manager_param_get_default

It uses the dbus-glib type system.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
Remove tp_message_set in favour of tp_message_set_variant

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
TpAccountRequest:avatar: change from GArray<guchar> to GBytes

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
tp_account_get_avatar_async: rename to _dup_, return GBytes + MIME type

Also be (somewhat) cancellable, while I'm there.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
TpChannelDispatchOperation: make the external API GVariant-based

The implementation is really simplistic, and copies everything into
dbus-glib data types.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
TpChannelDispatcher: store immutable properties as a GVariant internally

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
TpChannel: stop implementing TpChannelIface, and make those properties read-only

Implementing TpChannelIface meant that channel-type, handle-type
and handle had to be settable at construct-time. That is no longer
a supported thing to do: everyone should be using the immutable
properties dict.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
channel-introspect: make a test more realistic

We're using an Entity_Type_None (nameless chatroom) channel, but
claiming in its immutable properties that it has a non-empty
target of type Contact. That means we're effectively making assertions
about whether the immutable properties we specified at the beginning,
or the result of GetAll(), will "win", which makes this test
unnecessarily brittle.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
TpChannel:channel-properties: change type to GVariant

It's still a GHashTable internally, because lots of subclasses still
rely on that.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
TpChannel::group-members-changed: change details GHashTable to GVariant

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
Rename all mentions of handle types to entity types

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
Sort main-1.0.abi via `LC_ALL=C sort -u` for easier diffs

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
TpChannel, TpChannelIface: disentangle their documentation

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
TpObserveChannelContext:observer-info: change type to GVariant

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens
tp_text_channel_get_message_types, TpTextChannel:message-types: remove

They have a dbus-glib type, and Empathy exclusively uses
tp_text_channel_supports_message_type() instead.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77139
Reviewed-by: Xavier Claessens