A first pass at adding support for injecting hardware exceptions for
emulated instructions.
- Add helper routines to inject interrupt information for a hardware exception from the VM exit callback routines.
- Use the new routines to inject GP and UD exceptions for invalid operations when emulating the xsetbv instruction.
- Don't directly manipulate the entry interrupt info when a user event is injected. Instead, store the event info in the vmx state and only apply it during a VM entry if a hardware exception or NMI is not already pending.
- While here, use HANDLED/UNHANDLED instead of 1/0 in a couple of routines.
Reviewed by: neel