core: simplify nm_device_get_best_auto_connection() implementations

Filter out non-autoconnect connections in the generic NMDevice method
rather than requiring each subclass to do it.

https://bugzilla.gnome.org/show_bug.cgi?id=688284
dhcp: pass device hardware address to DHCP

Gets used for stuff like the interface DUID for DHCPv6.
dhcp: add generic DUID infrastructure

Add infrastructure for generating DUID-LLT from a given device MAC and
passing it around to the DHCP client implementations.

Thanks to Mathieu Trudel-Lapierre for bug fixes in the
unescaping code, which were merged into this commit.
dhclient: read DUID from leasefiles
dhclient: save DUID to dhclient leasefiles when required

The DUID is supposed to be machine-wide, so if we're writing a new
leasefile, save the default DUID to it.  If we haven't saved a
persistent DUID yet, do that to.
dhclient: add testcases for reading DUIDs from leasefiles
build: fix PolicyKit modify.system configure message

It wasn't actually checking the value, which it should have
been doing.  Thus the wrong message was printed.
build: update NetworkManager.pc

Add "plugindir" and "configdir" variables (eg, for VPN plugins to make
use of).
cli: add generic setting_details() for printing NMSetting
cli: use setting_details() to simplify printing connection details
cli: add missing 'dhcp-hostname' property to 'ipv6' setting