vsphere: Support multiple NIC backings

A bit of background: currently fog supports Network[1], but there's also
DistributedVirtualPortgroup[2] which extends Network.

With this commit create_vm tries to detect if the network is a
DistributedVirtualPortgroup. If it is it will create the appropriate backing
(VirtualEthernetCardDistributedVirtualPortBackingInfo[3]). If it's not it will
fall back to the regular backing (VirtualEthernetCardNetworkBackingInfo[4]).

Known issues:
* It is possible for an administrator to assign network permissions to a
  DistributedVirtualPortgroup[2], but not to the DistributedVirtualSwitch[5].
  In that case you can't read its UUID and it fails with an exception.

[1]: http://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.wssdk.apiref.doc%2Fvim.Network.html
[2]: http://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.wssdk.apiref.doc%2Fvim.dvs.DistributedVirtualPortgroup.html
[3]: https://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.wssdk.apiref.doc%2Fvim.vm.device.VirtualEthernetCard.DistributedVirtualPortBackingInfo.html
[4]: https://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.wssdk.apiref.doc%2Fvim.vm.device.VirtualEthernetCard.NetworkBackingInfo.html
[5]: https://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.wssdk.apiref.doc%2Fvim.DistributedVirtualSwitch.html
vsphere: Allow listing virtual port groups

This has had limited testing and may not be perfect, but in the current
situation loading a DistributedVirtualPortgroup into the model will die
because the backing has no property network.