Initial commit for basic ENI Debian/Ubuntu network config

This uses /etc/network/interfaces single file format.
Includes basic tests
Merge branch 'impl_eni'
Vlan object and support for ifcfg.

Add ifcfg configuration support for Vlans and Vlan OVS ports.
Consolidate OVS_EXTRA for the vlan test.

Consolidates the test data into a single string block for the
ovs vlan port test string.
Add OvsBond object and impl for ifcfg format.

Supports the configuration of OVS bond interfaces.
Also adds the ability to configure extra OVS_OPTIONS
for both bonds and bridges (useful for some modes of
operation)
Remove some extra print statements.
Implement object json parsing functions.

Adds a from_json static method to all objects.

Also adds a top level object_from_json function that
can be used for all the interface and bridge types.
(everything except addresses and routes). This should
be useful for wiring processing JSON from the CLI.
Add os-net-config CLI

Adds a new CLI which parses the JSON and calls the configured
provider to apply the configuration.
ENI fixes for v4/v6 ips. DHCP test fixes.

Updates the ENI format so it creates multiple config sections
for a single os-net-config interface object if both v4 and v6
IP addresses are defined.

Also, fixes several of the test so that DHCP is not enabled on
OvsPorts. If an OVS port is part of a bridge that is itself using
DHCP we don't also need to run DHCP on the OvsPort interface.
Update impl_eni so it ifup's the interfaces

We were shutting the interfaces down but not bringing them up
again. This fixes that...
Add vlan support for the ENI implementation.
ifcfg: don't call set Interface for vlans...

Drop the 'set Interface $DEVICE external-ids:iface-id=...' config
from ifcfg ovs vlans.
Update impl_eni to set the MTU.
ENI: enable 'auto' on bridges by default
ENI: bring up bridges first on Debian

We should bring up the interfaces on boot in the same order
with which we bring them up in this tool.