implement introspect support

This set of commits implements org.freedesktop.DBus.Introspectable.Introspect that returns XML describing the supported methods and signals.