Extend the Hypervisor interface by VersionsSafeForMigration

The question which hypervisor versions are safe to migrate between
is hypervisor dependent. The default implementation is that it's
probably fine if the versions are equal and otherwise be safe and
disallow it.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
Use HV-specific version comparison function

...to decide if a migration is safe.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
Move Xen-specific version test hv_xen

The hypervisor-compatibility test we used was specific to
Xen, so move it to the hv_xen instead of having it in util.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
Be optimistic for kvm migration

Already in Ganeti 2.8, the machine_version feature was added to
the kvm hypervisor which allows migration in most cases. In order
not to block legitimate use cases, restore the old behavior and
do not check for version on kvm.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>