Configuring Network from Vendor JSON Network Data

## _Just a Pull Request for review purposes_

* Adds a `apply_network_json` to the distro class.
* Tries to use `apply_network_json` if implemented by the distro and the ConfigDrive contains a `network` section in the vendor data.
* Adds a `NetConfHelper` class to help get link and device names from the network settings.


TOOD:
* ~~DNS~~
* Cleanup
* Tests
* Re-name APIs and get upstream.


For Debian, we need to check the ifupdown version, for newer versions we must not the slaves as explicit interfaces, but for older versions, we must add them.  (makes total sense)