secret-agent: rework secret-agent to better handle service shutdown

The secret-agent D-Bus API knows 4 methods: GetSecrets, SaveSecrets,
DeleteSecrets and CancelGetSecrets. When we cancel a GetSecrets
request, we must issue another CancelGetSecrets to tell the agent
that the request was aborted. This is also true during shutdown.
Well, technically, during shutdown we anyway drop off the bus and
it woudn't matter. In practice, I think we should get this right and
always cancel properly.

To better handle shutdown change the following:

- each request now takes a reference on NMSecretAgent. That means,
  as long as there are pending requests, the instance stays alive.
  The way to get this right during shutdown, is that NMSecretAgent
  registers itself via nm_shutdown_wait_obj_register() and
  NetworkManager is supposed to keep running as long as requests
  are keeping the instance alive.

- now, the 3 regular methods are cancellable (which means: we are
  no longer interested in the result). CancelGetSecrets is not
  cancellable, but it has a short timeout NM_SHUTDOWN_TIMEOUT_MS
  to handle this. We anyway don't really care about the result,
  aside logging.

- this means, a request (NMSecretAgentCallId) can now immediately
  be cancelled and destroyed, both when the request returns and
  when the caller cancels it. The exception is GetSecrets which
  keeps the request alive while waiting for CancelGetSecrets. But
  this is easily handled by unlinking the call-id and pass it on
  to the CancelGetSecrets callback.
  Previously, the NMSecretAgentCallId was only destroyed when
  the D-Bus call returns, even if it was cancelled earlier. That's
  unnecessary complicated.

- previously, D-Bus requests SaveSecrets and DeleteSecrets were not cancellable.
  That is a problem. We need to be able to cancel them to shutdown in time.

- use GDBusConnection instead of GDBusProxy. As most of the time, GDBusProxy
  is pointless.

- again, don't log direct pointer values, but obfuscate the indentifiers.
15 jobs for th/secret-agent-cleanup in 129 minutes and 44 seconds (queued for 117 minutes and 9 seconds)
Status Job ID Name Coverage
  Test
passed #480954
allowed to fail
checkpatch

00:01:14

manual #480959
allowed to fail manual
t_centos:7.5.1804
passed #480960
t_centos:7.6.1810

00:28:22

passed #480966
t_debian:10

00:21:20

passed #480965
t_debian:9

00:12:53

passed #480968
t_debian:sid

00:13:26

manual #480967
allowed to fail manual
t_debian:testing
passed #480955
t_fedora:28

00:28:16

passed #480956
t_fedora:29

00:57:08

passed #480957
t_fedora:30

00:29:33

manual #480958
allowed to fail manual
t_fedora:rawhide
passed #480961
t_ubuntu:16.04

00:36:07

passed #480962
t_ubuntu:18.04

00:20:00

manual #480964
allowed to fail manual
t_ubuntu:devel
manual #480963
allowed to fail manual
t_ubuntu:rolling