Add a simple and rough hypervisor interface
Pull out the existing CPUID based hypervisor detection into a formal
interface so that we can later use it to detect multiple hypervisors.
Similar duplicate code exists in XEN and HYPERV, and should eventually
be consolidated.
This commit breaks the existing VMware detection which will be fixed
in a subsequent commit.