Fixes Hyper-V agent force_hyperv_utils_v1 flag issue

WMI root\virtualization namespace v1 (in Hyper-V) has been removed
from Windows Server / Hyper-V Server 2012 R2.

Hyper-V compute agent now creates instances which uses
root\virtualization\v2 namespace if the agent's OS is
Windows Server / Hyper-V Server 2012 R2 or newer.

Closes-Bug: #1344036

Change-Id: I874ade4456b92a63959a765c7851bcd001befa32
virt: helper for processing NUMA topology configuration

Add helper class / methods to nova/virt/hardware.py to assist
in handling the various NUMA related image & flavor extra spec
properties and calculating host usage.

Blueprint: virt-driver-numa-placement
Change-Id: I46c92166d5252f3bf9867dc08935df8c636d9b7d
Add dict and json methods to VirtNUMATopology classes

We will need to serialize and de-serialise these, so we add a method to
base Cell and Topology classes that will handle transformations to and
from JSON. Internally this uses (also newly added) _{to,from}_dict()
methods, which are handy to have (especially for testing), but should
not be used outside of the serialization logic.

We also add defaults to the VirtNUMATopologyCellUsage for the usage
bits, and add a class attribute 'cell_class'  to VirtNUMATopology that
makes it possible to write most of the serialization methods in a
more general manner.

Blueprint: virt-driver-numa-placement
Change-Id: I552d642994f273215c307da7e0f11d77ee410acb
Direct-load Instance.fault when lazy-loading

This breaks out instance.fault lazy-loading from the other attributes,
since we have a direct and more efficient way of fetching the fault than
re-querying the entire instance with the fault attached.

This also should help address fault-related races in the API where a
list of instances is queried, one of those is deleted, and the fault
attribute later triggers an InstanceNotFound whilst trying to do the
lazy-load.

Change-Id: Iceb552663db93fa2a01fb90ece0c1eebecdb783f
Closes-bug: #1352659
Merge "virt: helper for processing NUMA topology configuration"
Merge "Add dict and json methods to VirtNUMATopology classes"
Merge "Fixes Hyper-V agent force_hyperv_utils_v1 flag issue"
Merge "Direct-load Instance.fault when lazy-loading"