libvirt: Support snapshot creation via libgfapi

Currently, the libvirt driver only handles volume snapshot
creation for file-backed volumes.

This changes allows volume snapshot creation for libgfapi-
attached volumes to work.  (A sufficiently new version of
libvirt is required.)

Implements: blueprint libvirt-volume-snap-network-disk
Closes-Bug: 1288976

Change-Id: Ic6dd861b40b692b25df67c9d5b63fd436c690fde
VMware: virt rescue method now supports objects

Commit a37a96fd13b933123e80ad24e37fc37d73c16059 ensured
that the compute API and manager are now getting objects
for the rescue method.

This patch adds support to the virt driver code.

Change-Id: Id7fca437f8470ee483ec3683211766095b293ebf
VMware: virt unrescue method now supports objects

Commit 65ad230af5ece020822fa963dd30fd641a54ae91 ensured
that the compute API and manager are now getting objects
for the unrescue method.

This patch adds support to the virt driver code.

Change-Id: I42fa532d5b2b1c92121216ac31b56a7b595d59e7
VM diagnostics: add methods to class to update diagnotics

Add the following methods:
    - add_cpu
    - add_nic
    - add_disk

The methods will enable the virt driver to update the object.

Change-Id: Id4ca1f188dc955590cd32c634d9c33572f93a5ef
VM diagnostics: add serializer to Diagnostics object

The serializer will enable the API to return a dictionary to the
user.

Part of the blueprint v3-diagnostics

Change-Id: If86a94cba98745acbc9976fa7354c98ec6716ac0
libvirt: speed up get_all_block_devices method

Switch the get_all_block_devices method to use the new
list_instance_domains method.

Blueprint: libvirt-domain-listing-speedup
Change-Id: I8d3fdcbbe5539370583ace6abaffa62fec457d7b
libvirt: speed up get_vcpus method

Switch the get_vcpus method method to use the new
list_instance_domains method.

Blueprint: libvirt-domain-listing-speedup
Change-Id: I474d6db502d19f2296252f4f3ae2ef740a2188e8
Remove cell api overrides for lock and unlock

This isn't actually needed as these methods handle objects and is
triggered when the instance object is saved.
It actually caused a race condition with unlock as it triggers 2
instance updates from a compute cell.

Change-Id: I42eea6a2984f70527d4fc37f48ad973a2248721c
Closes-Bug: #1257168
Merge "VM diagnostics: add methods to class to update diagnotics"
Merge "VM diagnostics: add serializer to Diagnostics object"
Merge "VMware: virt unrescue method now supports objects"
Merge "VMware: virt rescue method now supports objects"
Merge "libvirt: speed up get_all_block_devices method"
Merge "libvirt: Support snapshot creation via libgfapi"
Merge "Remove cell api overrides for lock and unlock"
Merge "libvirt: speed up get_vcpus method"