core: Add NMUtilsIPv6IfaceId to nm-types.h

We'd like to use it in nm-platform.h, but it's included by
NetworkManagerUtils.h before the declaration occurs.
platform: Add support for IPv6 tokenized identifiers
core: Use tokenized identifiers when constructing an address

We trigger a new solicitation upon seeing the new token. Kernel triggers one
too, but that one is of no use to us, since the advertisement might arrive sooner
than we learn about the token change.
build: Check for tokenized identifier support in libnl-route-3
platform: Refresh link cache when IPv6 tokenized identifier changes

Refactor the object comparison logic into a separate function. One from libnl
is not good enough (see comment).

Also, kernel currently won't send notifications on token change, a patch is
needed.
platform: Add support for IPv6 tokenized identifiers on Linux
dhcp: Fix the DHCP client lookup by gtype
Revert "cli: Finish waiting for device activation when they disconnect"

In case there's already a connection on the device, it traverses to
DISCONNECTED. We shouldn't cease waiting then.

This reverts commit 94a57d5e07b9e3d7f52b4ea3c8b86da9eed28baa.
cli: Only escape VPN banner if it's present

If the connection is in ACTIVATING state, the banner is still NULL.
vpn: Propagate daemon exec error correctly

NetworkManager[31624]: <warn>  VPN service 'openvpn': could not launch the VPN service. error: (8) Failed to execute child process "/usr/local/libexec/nm-openvpn-service" (No such file or directory).
**
NetworkManager:ERROR:nm-manager.c:3094:_activation_auth_done: assertion failed: (error)
libnm: Don't expect VPN connections to attach to the device
cli: Abort when given name of a non-existent connection for nmcli up

Even when ifname is present: nmcli c up name Nonexistent ifname wlan0
cli: Only construct an agent for a connection if there is a connection

[lkundrak@fedora20-2 ~]$ nmcli --ask c ifname wlan0

(process:18405): libnm-CRITICAL **: nm_object_get_path: assertion 'NM_IS_OBJECT (object)' failed
Error: Connection activation failed: The device has no connections available.
[lkundrak@fedora20-2 ~]$
core: fix a spurious warning with non-kernel network devices

NMDevice was warning about not being able to set ifindex even on
devices that we know don't have an ifindex.

https://bugzilla.gnome.org/show_bug.cgi?id=739889
docs: make the settings docs work from tarball builds

docs/api/settings-spec.xml was accidentally not getting disted,
because gtk-doc.make explicitly removes all DISTCLEANFILES from
distdir. However, it doesn't actually make sense for the settings docs
files to be in DISTCLEANFILES anyway; they were put there rather than
CLEANFILES (IIRC) so that "make clean" in a tarball build wouldn't
delete them and break things. But the right fix is to just make them
only be in CLEANFILES when BUILD_SETTING_DOCS is true, and not ever
get deleted otherwise.

Also adjust the build rules to ensure that the generated docs don't
get rebuilt in tarball builds, since that can cause problems when
building from a read-only source tree, etc.

Meanwhile, in an unrelated but also fatal bug, configure.ac's check
for if the generated docs were already present never got updated for
the cli/src -> clients/cli move, and so even if we had been disting
settings-spec.xml, configure would still think that the tarball didn't
have all of the generated docs in it, so SETTING_DOCS_AVAILABLE would
be set false and none of the generated docs would get used.

https://bugzilla.gnome.org/show_bug.cgi?id=740035
core: fix return type of addrconf6_start()

It returned a boolean and the caller expected a boolean, but the
return type was NMActStageReturn.
libnm: Watch for AC removal in case of AddAndActivateConnection() as well

This does the very same thing as 42b9e8283 does for plain ActivateConnection().
cli: Finish waiting for the device activation when it disconnects

The device status alone is uninteresting as its changes can be due to
deactivation of previously active connection. We should monitor the
active connection changes instead of device state changes.

However the device state changes is still interesting, as it contains the
reason for the change, let's just ignore them while the connection is
activating.

Lastly, we need to handle failures as well. It should be noted that it's
not sufficient to deal with NM_DEVICE_STATE_FAILED as the device will
quickly draverse to NM_DEVICE_STATE_DISCONNECTED. This happens in case of
a failure due to NM_DEVICE_STATE_REASON_NO_SECRETS as soon as the server
makes sure it won't reconnect automatically.
merge: nmcli device activation behavior fixes (bgo #740136)
libnm: add some missing (transfer) annotations

All the old "const GByteArray" methods got changed to return a GBytes
instead, but since they aren't declared "const" any more, we need to
explicitly annotate them "(transfer none)".

Also, the scanner apparently doesn't recognize that an (out)
"const char **" is "(transfer none)", so annotate that in two places
too