Add support for backup encryption metadata

This modification allows the encryption key UUID field, which
has been added to the volume table, to remain valid when encrypted
volumes are backed up and then restored, which enables the restored
volume to be accessible and encrypted.  This is related to patch
https://review.openstack.org/#/c/39573/, except that it uses the
backup metadata support recently added in patch
https://review.openstack.org/#/c/51900/ rather than modifying the
backup api.

Change-Id: Ib91f8275271e6bd4f2d9e17499d16ec13bca2b84
Implements: blueprint backup-support-for-encrypted-volumes
DocImpact
VMware: Fix datastore selection with single host

Currently, the select_datastore method is called with an empty list of
ESX hosts. This causes the method to retrieve all the hosts in vCenter
as candidates for selecting a datastore. The reference to a retrieved
host is stored in attribute 'obj'. Some of the future bug fixes will
need to invoke this method with reference to a single ESX host. Such
invocations will fail with attribute error: 'val instance has no
attribute 'obj''. This patch fixes the attribute error.

Closes-Bug: #1401052
Change-Id: Ib4f48d2ebfbfa3a9ce6a402300d41351548932ef
Report better capacity info for a limitless 3par cpg

This change has the following improvement:

1. Uses getCPGAvailableSpace from hp3parclient to report
free_capapcity for a limitless cpg.

2. Uses cpg's SDUsage.usedMiB + UsrUsage.usedMiB + free_capacity
to calculate the total_capacity for a limitless cpg. This is the
best we can do for a limitless cpg.

Closes-Bug: #1398651
Change-Id: I62f446786360c61288a788be29d1daa6e409c7b1
Merge "VMware: Fix datastore selection with single host"
Merge "Report better capacity info for a limitless 3par cpg"