Implement plug_vifs and add support for multiple interfaces

Previously, if there were multiple interfaces in network_info
the docker driver would ignore them and just use the first one.
Therefore, if one was booting an instance with multiple nics you
would only get the first requested one. This patch fixes that and
implements plug_vifs which allows you to know reboot a nova-compute
node and have it respawn the instances with their interfaces configured as
how they were before.

Change-Id: I94b35f6e93db2ee5bf09a3a7c4491ec3d281d8ab
Closes-bug: 1302149
Implement DockerGenericVIFDriver

This patch implements a generic vif driver which will one to use various
different vif drivers inconjunction with docker.

Change-Id: Ib306abb6e43430afe7a2a4f8086088320d3671af
Use openstack assigned mac_address on interfaces

Previously, the docker driver did not set the mac_address
that openstack allocated it. This patch fixes that so it does.

Change-Id: I04858f3d03861e0214f39dd42d226a0b2e96871a
Merge "Implement plug_vifs and add support for multiple interfaces"
Merge "Implement DockerGenericVIFDriver"
Merge "Use openstack assigned mac_address on interfaces"