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.
[Rackspace|Compute] fixed issue with bootstrap method where server was ready, but it had not received an ipv4 address yet. Added check for ip address in server ready block as well as a timeout parameter
Merge branch 'master' of github.com:fog/fog into rackspace_bootstrap
[rackspace|compute] this should address a metadata issue discovered in chef http://tickets.opscode.com/browse/KNIFE-217(cherry picked from commit a859b9ecf550469ac43ea35402785dad59d7c7f2)
[rackspace|compute] added create server example
[rackspace|compute] Adding more cloud server examples
[rackspace|compute] tweaking examples
refined examples; moved samples into cloud_servers sub directory
moving examples; added readme
tweaking example readme file
tweaking examples document
Pass the management URI if no public endpoint
Need to check for management variable as well
Set the User-Agent as Fog, to help differentiate from HP's CLI tools that have a vendored 'hpfog'
Merge pull request #1524 from mattray/User-Agent

Set the User-Agent as 'fog' instead of 'hpfog'
[rackspace|identity] Correctly populate model from request data.

Previously, the model was being incorrectly loaded from request data. As a
result, the username and apiKey properties were always nil. This fixes parsing
and improves the tests to catch this type of bug in the future.
[openstack|compute] fix get_metadata call
[rackspace|identity] Remove unused get_credentials request.
Merge pull request #1526 from bleything/fix_openstack_compute_metadata_get

[openstack|compute] fix get_metadata call