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] 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.
[rackspace|networks] Add Cloud Networks requests.
[rackspace|networks] Add networks model and collection.
[rackspace|compute] Update server to use default networks.

Rackspace Cloud Networks uses hard-coded UUIDs for
identifying public net and service net. This defaults the
network array for new servers to use public net and service
net.
[rackspace|compute] Allow custom network on server.

When creating a new server, you can now pass an array of
network IDs to which that server has access. If no networks
are specified, it default to public net and service net.
[rackspace|networks] Add mock responses.
Merge pull request #1541 from bradgignac/rackspace-cloud-networks

[rackspace|networks] Rackspace Cloud Networks
Merge pull request #1431 from ekohl/vmware-dvs

[vsphere] Vmware Distributed Virtual Switches
Adds new Code Climate badge to README

Rather than just acting as a link the new badges
show the GPA score of the codebase.