x86: Choose a hypercall instruction in run-time

VMX and SVM use different instructions to make a hypercall (vmcall and
vmmcall, respectively). Jailhouse abstracts hypercall instructions with
inlined functions in jailhouse_hypercall.h, and these need to be able to
differentiate between VMX and SVM. As these functions are never called on
a CPU without VM extensions (the driver checks if Jailhouse is enabled
before issuing a hypercall, and inmates are not run outside cells), it is
safe to assume that the CPU without VMX support is an SVM one.
driver: Fix signedness in stats_show()

A variable that store hypercall result in stats_show() function
was incorrectly declared as unsigned, hence the error check always
succeeded.
x86: Misc fixes for vcpu_reset() in svm.c

Guest CR3 register wasn't cleared on virtual CPU reset due to the typo,
and guest's EFER was incorrectly set to zero with SVME bit cleared. The
last bug resulted in misbehavior when Jailhouse runs on real hardware.
x86: Fix SVM_CR0_CLEARED_BITS value

See the comment inside for the motivation. Having CD bit in
SVM_CR0_CLEARED_BITS breaks Linux's prepare_set() function,
which is called as a part of the bootstrap sequence and
explicitly disables caching on the CPU.
x86: Fix GIF handling

GIF must be cleared when a CPU leaves Jailhouse. This happens in
vcpu_exit() (previously, stgi was absent there causing a CPU to stall
when Jailhouse was disabled with running non-root cell), and in
vcpu_deactivate_vmm() (here, stgi was moved to the very end of a
switching code, to prevent NMIs from interfering with it).
x86: Better vcpu_handle_exit() in svm.c

A CPU is parked now if it failed to proceed under SVM, and MMIO
access to APIC registers is trapped regardless presence of the AVIC,
which makes the logic more straightforward.
x86: Enable APIC reads pass-through

Do not VM exit on APIC MMIO registers read anymore. This is known
not to work under KVM, and x2APIC mode is recommeded for nested
SVM setup, as described in qemu-vm config.
x86: Fixed a comment

This commit is here to preserve the history, and it will
vanish with the next rebase.