Add VolumeMapping object for use in EC2

The EC2 code has a table mapping volume UUIDs to EC2 IDs.  This patch
creates the Nova object for this so that we can remove direct use of
these db.api calls from the EC2 code.

Change-Id: I80e5d9c8e33c1f0c5ef8a9f7c54935c8c329ed25
ec2: create volume mapping using nova object

Update the EC2 code that creates a mapping in the db between the
volume UUID and an EC2 ID to use the nova object for this.

Change-Id: I2b02c9f639519a7835ffcf27be704b4810334e6d
ec2utils: Use VolumeMapping object

Update ec2utils to use the VolumeMapping object instead of direct db
API calls for getting the ec2 ID to UUID mappings.

Change-Id: Id653fc16fffc1c416379087228a0b053b8868cac
VMware: spawn refactor - phase 1 - execute_create_vm

Moves the inner function "execute_create_vm" from the spawn method
to vm_util. Additionally, return the vm_ref after VM creation so
an extra call to retrieve the vm_ref does not need to take place
after the fact.

partial blueprint vmware-spawn-refactor
Co-authored-by: Tracy Jones <tjones@vmware.com>

Change-Id: I67c3c8c14b6c01b160611cc001d51f1da29ffb24
Optimize validate_networks to query neutron only when needed

This patch optimizes validate_networks so that it only queries neutron
when needed. Previously, this method would perform an additional net_list,
list_ports, and show_quota regardless if a request contains only
port_ids. If a request only contains port ids we do not need to check neutron
for quota as these ports are already allocated.

Change-Id: Ia7abc7d95b663f165fc95385dda3bab13b7a43e6
Closes-bug: #1291565
Merge "VMware: spawn refactor - phase 1 - execute_create_vm"
Merge "Add VolumeMapping object for use in EC2"
Merge "ec2: create volume mapping using nova object"
Merge "ec2utils: Use VolumeMapping object"
Merge "Optimize validate_networks to query neutron only when needed"