network: add net_device_get_valid_connections() and use it everywhere
In addition to simplifying a bunch of places that were calling
nm_remote_settings_list_connections() +
nm_device_filter_connections(), this also ensures we filter out slave
connections everywhere (except when they are the active connection).
network: add "virtual device" support, for bonds, bridges, and vlans
Bond, bridge, and VLAN devices may not actually exist until their
connections are brought up. So for those types, create device items
(of type NetVirtualDevice or a subclass) as soon as we see the
NMConnection, and then watch for the NMDevice being added later.
Unfortunately, the VPN plugins provide their own .ui files for their
editor pages, so we can't make them look competely GNOME-3-ish. But
the code does try to fix them up a little bit by realigning the
labels.
vpn-helpers.[ch] is nearly identical to network-manager-applet's,
but eventually this code will move into libnm-gtk.