CP-9366: Use HVM feature-flags instead of checking PV drivers.

Changes:
* xapi_vm_lifecycle check_operation_error uses the flags to check
  whether we can perform a given operation.
* In xapi_host.ml the pre-evacuation check no longer checks for PV
  drivers to learn whether a VM can be migrated.  It was already
  calling Xapi_vm_lifecycle.check_operation_error.
* Appropriate errors are defined: one for each of three features.
* Datamodel refers to a new error instead of vm_missing_pv_drivers.

Related work not done:
* Datamodel has some operations that should mention the new errors.
  They should have mentioned vm_missing_pv_drivers in the past, so
  even now we are no worse off than before.

Signed-off-by: Thomas Sanders <thomas.sanders@citrix.com>
CP-9366: Watch the "control" xenstore node, and update VM-metrics "other".

Now when qemu writes a feature-flag into the control node, xapi will
notice and so will trigger the existing code that can copy those entries
into the "other" vm guest metrics parameter.

To make that work, when checking whether the guest metrics should really
be updated, now we go ahead even if only the "other" map has changed.

Signed-off-by: Thomas Sanders <thomas.sanders@citrix.com>
CP-9366: Allow vCPU hotplug for HVM (if feature-vcpu-hotplug is set).

Removed code that raises an Unimplemented exception unconditionally
for hvm guests when attempting vCPU hotplug.
This allows the existing code that decides based on the feature-flag
to work properly.

Signed-off-by: Thomas Sanders <thomas.sanders@citrix.com>
Merge pull request #1885 from thomassa/hvm-feature-flags

CP-9366: Use HVM feature-flags instead of checking PV drivers.