libglibcodegen: add code to generate GDBusInterfaceInfo from the Tp spec

I'm not using gdbus-codegen, at least not yet, because our CMs
are pretty heavily dependent on the TpSvc* interfaces, and I would
like the minimum viable port to GDBus to take a finite time.
Remove TpProxy::interface-added, and dbus-glib marshaller registration

In the glorious GDBus future, we won't need marshaller and signal
registration.

This also means we can get rid of the init_known_interfaces() family
of functions, which were only there to support interface-added.

This commit is the first of many that will break bisection.
That's somewhat unavoidable if you want to go from libdbus to GDBus
without having a single mega-commit :-)
Replace trivial uses of DBusGMethodInvocation with GDBusMethodInvocation

Mostly done with perl/sed one-liners.
Replace dbus_g_method_get_sender with g_dbus_method_invocation_get_sender

It doesn't copy the string, unlike dbus_g_method_get_sender.
tp_dbus_g_method_return_not_implemented: use a GDBusMethodInvocation
replace dbus_g_method_return_error + g_error_free with g_dbus_method_invocation_take_error
_tp_base_client_remove_request: use g_dbus_method_invocation_return_error_literal
TpProxy: have a GDBusConnection and GDBusProxies instead of dbus-glib
tp_proxy_get_interface_by_id: remove from core library

With GDBus, the generated code won't need it.
tp_proxy_emit_invalidated: inline into its only caller

It no longer needs to run in an idle.
TpBaseClient: track clients per GDBusConnection, not DBusConnection
Do domain-specific errors via GDBus, not dbus-glib

We can get rid of TP_DBUS_ERROR_UNKNOWN_REMOTE_ERROR, because
G_IO_ERROR_DBUS_ERROR doesn't have the same weird abuse of GError
semantics that DBUS_GERROR_REMOTE_EXCEPTION did.

I moved TP_DBUS_ERROR_INCONSISTENT from last to 0'th TP_DBUS_ERROR,
to avoid having to renumber all of them.

We can probably get rid of a lot of these errors in favour of
G_IO_ERROR or G_DBUS_ERROR members, but for now, let's keep them.
TpSvcInterfaceInfo, TpSvcInterfaceSkeleton: add

These will let us export TpSvc objects as GDBus objects.

TpSvcInterfaceSkeleton is private, so it's OK that it makes assumptions
about how TpDBusDaemon will manage its life-cycle.
tp_dbus_daemon_register_object: rewrite in terms of TpSvcInterfaceSkeleton
tp_dbus_daemon_dup: rewrite in terms of GDBus, and use session bus

telepathy-glib has historically used the starter bus, with what are
effectively the following semantics:

* if the session bus is the same as the starter bus, do the right thing;
* if the session bus is reset by GTestDBus, dbus-run-session or similar,
  but the implementer forgot about the starter bus, use the wrong bus;
* if deliberately service-activated on a non-session bus, exercise
  code paths that are never normally tested, probably have subtle
  bugs as a result, and fail to communicate with clients that were
  not service-activated and so are not on the same bus anyway

These are not useful semantics, so while we're doing a massive ABI
break already, let's switch over to "we officially run on the session
bus, deal with it".
Update documentation: we no longer use the starter bus
tp_dbus_daemon_watch_name_owner: rewrite in terms of g_bus_watch_name_on_connection

There's more debug here than I'd normally use, because this is a
large, non-bisectable rewrite. We can delete the bits that are
excessively noisy after we know it all works :-)
_tp_dbus_daemon_get_name_owner: rewrite using GDBus

Much simpler.
tp_dbus_daemon_request_name: rewrite using GDBus
tp_dbus_daemon_release_name: rewrite using GDBus