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|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.
[rackspace|identity] Remove unused get_credentials request.
[openstack|compute] rename meta_hash to to_hash; make it public
Merge pull request #1528 from bleything/metadata_to_hash

[openstack|compute] rename meta_hash to to_hash; make it public
[glesys] Consistent naming of attributes
Merge pull request #1533 from smgt/glesys-consistent-attribute-naming

[glesys] Consistent naming of attributes
Add initial support for pulling in >100 zones via Zones.each.

Uses the hypermedia links returned by the response body to
determine whether or not there are more results available.
Fix warning
version
Merge pull request #1527 from bradgignac/rackspace-identity-credentials

[rackspace|identity] Fix credential parsing.
[aws|dynamodb] fix port to match https default
closes #1531
reverse version change
Merge pull request #1536 from lawso017/verify_peer_warning

Fix warning
Get rid of the extra load() calls.
Merge pull request #1535 from minter/paginated_domains_via_each

Add support for pulling in >100 zones via Zones.each.
[rackspace|dns] fix issue in zones.find where results with no links throw exception
[rackspace|compute] Fix typo in attachments model.
[rackspace|compute] Handle malformed API responses.

When deleting a Cloud Network, the API returns a plain text
response even when the Content-Type is set to
application/json. In the event of a JSON parsing error, this
change sets the request body to an empty hash.