Some interrupts only should be deferred when intercepted by KVM code,
not completely handled by KVM. Thus we need to call into Linux' interrupt
handling code for a few vectors.
So far, this has been done by calling right back into the original
interrupt vector once we're far enough in the guest exit code path.
However, this adds more code to be executed, because we need to save
and restore more state during the full interrupt cycle. We also lose
out on compiler optimizations, since it's all hand written asm.
So switch the code over to call into the Linux C handlers from C code,
speeding up everything along the way.
Along the way, this fixes a bug where we would have to set HSSR instead
of SSR SPRs for the interrupt vector, making hv capable hosts work again
properly.