libnm/libnm-util: add VPN 'persistent' property
vpn: allow plugins to re-enter the STARTING state to indicate reconnect

If the VPN re-enters the STARTING state to indicate that it has
disconnected from the VPN server and is trying to reconnect, change
the VPN connection's state to indicate that connectivity may be
limited.  Wait for the VPN to provide updated IP configuration
information from the reconnect to change back to the ACTIVATED
state.
vpn: add plugin 'can-persist' key

If set to 'yes', and the VPN connection specifies persistence, then
NetworkManager will allow the VPN connection to stay up over link
changes.
vpn/core: move VPN gateway route between devices when routing changes
vpn: reconnect on service failures (bgo #349151)

Attempt to reconnect the VPN on failures, except when the underlying
device fails.

https://bugzilla.gnome.org/show_bug.cgi?id=349151
clients: move secret agent to common directory

The agent code will be shared by both nmtui and nmcli.
clients: add real property name to NmSecretAgentSimpleSecret

It is necessary to identify secrets uniquely in nmcli.
cli: use secret agent for getting passwords from user

--ask option has to be used, so that nmcli can be interactive.
cli: add 'passwd-file' option for 'nmcli connection up' to provide passwords

It is useful for running nmcli without --ask option, i.e non-interactively.

Example contents of the file:
wifi.psk: s e c r e t 12345
802-1x.password:kili manjaro
802-1x.pin:987654321
clients: add common code for polkit agent listener

that can be used by nmcli and nmtui
configure: check whether polkit-agent-1 is available
cli: add a polkit agent support for nmcli

Example: nmcli --ask general hostname computer007
fixup! vpn/core: move VPN gateway route between devices when routing changes

Also add gs_unref attribute, so that codepaths that fail g_return() are
not completely broken by leaking a reference
fixup! vpn/core: move VPN gateway route between devices when routing changes
core: split signal/pidfile/option handling into separate source file

We'll use this from more than one spot.
dhcp: move D-Bus DHCP listener into separate class

This simplifies the manager and ensures that only the clients
that use D-Bus-based DHCP helpers need to care about them.
dhcp: move client-specific knowledge out of the manager
dhcp: preserve DHCPv4 client ID for later use

If we can, read the existing client ID from the leasefile and preserve
it for later use.
dhcp: preserve hostname for later use
dhcp: track last IPv4 address on start for renewal

Really only used by systemd because it doesn't have as good lease
handling, but it's also necessary if we switch DHCP clients mid-stream
(which we'll be doing later) since the new DHCP client won't
have a lease file for the current IP address, and thus has nowhere
to pull the current IP address from to request the same address
from the DHCP server.