AM: initialize D-Bus property interfaces in _init()
AM: initialize D-Bus property interfaces in _init()

It turns out that it is unsafe to do this at any later point, due to a
series of surprising facts:

• mcd_dbus_init_interfaces_instances (obj) is implemented in terms of
  g_type_get_qdata (G_OBJECT_TYPE (obj), ...).

• osso-mission-control subclasses McdAccountManager.

• This code:

    GType s, t; // s is a subtype of t;

    g_type_set_qdata (t, FOO, BAR);

    gpointer data = g_type_get_qdata (s, FOO);

  sets data to NULL because g_type_get_qdata() does not consider
  superclasses.

• Remarkably, calling mcd_dbus_init_interfaces_instances() from the
  _init() function works because the code that runs each instance_init()
  function in the hierarchy in turn sets the object under construction's
  GTypeClass to be the particular type whose init() is running, rather
  than the final type of the object!

This was a fun debugging session.

freedesktop-unofficial-mirror/telepathy__telepathy-mission-control,freedesktop-unofficial-mirror/telepathy__telepathy-mission-control,freedesktop-unofficial-mirror/telepathy__telepathy-mission-control,freedesktop-unofficial-mirror/telepathy__telepathy-mission-control