ACK an interrupt only if we really process it.

Though, I'm not sure what happens if we don't.  Seems like the right
things to do, but maybe need to revisit this later.
Save registers before handling interrupts.

Somehow the hardware drivers we're too bothered about this omission,
but the virtio drivers seemed to crap out quickly.  IOW, virtio drivers
now work reliably.