Handle all interfaces, including VPN

I have rewritten the code to look at Network Services rather than directly at interfaces. As far as I have tested, it now correctly handles VPN connections and Thunderbolt network adapters.