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
* [dreamhost|dns] initial import
[dreamhost|dns] remove connection deprecation notices
[dreamhost|dns] Use the new fog-dream.com domain for testing
[dreamhost|dns] remove silly debugging code
[dreamhost|dns] do not delete the do-not-delete record when testing
[dreamhost|dns] added test helpers

Also, use a helper instead of hardcoding the test domain in the tests
[dreamhost|dns] Added README.md file documenting testing procedure
[dreamhost|dns] Removed get_record request

- The request does not map to a Dreamhost API request, remove it.
- Updated the Records collection to use list_records instead of
  get_record in Records#get
- Added Records collection model test
[dreamhost|dns] refactor dns requests tests

Every request now has it's own test file.
[dremhost|dns] added DNS service tests
[dreamhost|dns] added Record model tests, fix Record.save

Record.save was missing attribute merging before returning
[dreamhost|dns] record tests fixes

Wait 10 secs for the new record to appear.
[dreamhost|dns] Emulate zone model and collection, added tests

Dreamhost API has no concept of Zone, but we can emulate it.
[dreamhost|docs] Added getting started guide, initial release
[dreamhost|dns] Do not add duplicated zones to the Zones collection
[dreamhost|dns] Moved getting started guide to examples/dns