keyfile: fix handling of enum/flags properties after fcfb4b40 (bgo #738585)

When some properties got converted to G_TYPE_ENUM and G_TYPE_FLAGS
the keyfile plugin was not updated to handle these types.

https://bugzilla.gnome.org/show_bug.cgi?id=738585
trivial: add missing break
remote-settings: Mark service as running when using private bus

When using a private bus connection, the service is never marked
as running when settings are initialized asynchronously. Successfully
opening a socket in NM's runtime directory should already imply
a running service, so just mark it as such (as we already do in
the synchronous path).
core: don't override external route metrics (bgo #738268)

A generated connection contains a copy of the device's existing
configuration, so it's entirely redundant to merge the connection
back into the device's IP config.  But even though that should
result in no changes to the IP config, NMSettingIPxConfig treats a
route metric of '0' as the device priority, while NMIPxConfig
allows 0 as a valid route metric.  Since the setting values
are preferred (they are supposed to be user-supplied and thus
override anythign else, but in this case they are generated and
thus not user-supplied) external routes with a metric of 0 are
overwritten with the device priority metric.

https://bugzilla.gnome.org/show_bug.cgi?id=738268
core: remove child devices without deconfiguring them (bgo #738479)

When a child device is found and an IP configuration already exists
for it even though it is under NM control (like when pppd applies
IP config to a WWAN device before NM gets the IP details from the pppd
plugin), don't deconfigure the child device when removing it from the
device list, because this breaks the device's configuration.

https://bugzilla.gnome.org/show_bug.cgi?id=738479
core: ensure interface is up before applying IP configuration (bgo #738479)

Routing configuration fails to apply if the device is not IFF_UP, so if
we're going to apply IP configuration to the device, make sure it's IFF_UP
first.

https://bugzilla.gnome.org/show_bug.cgi?id=738479
cli: Fix getting/setting hostname

Create a client instance before it's used.

$ nmcli g hostname
(process:13615): GLib-GObject-CRITICAL **: g_object_get: assertion 'G_IS_OBJECT (object)' failed
Merge remote-tracking branches 'lr/lr-unmanaged-slaves', 'lr/lr-ipv6-tokens', 'lr/lr-ap', 'lr/lr-rdisc-mtu', 'lr/lr-rpm-build', 'lr/lr-lxc' and 'lr/lr-hostname' into integration