[x86] Rearranged the interrupt code.

o The interrupt code has been rearranged to encapsulate
  the interrupt frame part of the arch_regs. No need of
  stack manipulation now, compiler does it for you.
o Added functions to dump registers of a given VCPU.
o Page fault and other exceptions calling register dumps.
o During interrupt handling, frame pointer is also saved.
  This was a major problem until now causing the stack
  to go haywire.
o Since hw-error code is not pushed on regular interrupts,
  IRQ_HANDLER macro has been modified to push a fake value
  in the stack frame. This is to keep the size of arch_regs
  constance on exceptions and interrupts.
o EXCEPTION_HANDLER macro doesn't do it since hardware
  automatically pushed hw error code.

Signed-off-by: Himanshu Chauhan <hschauhan@nulltrace.org>
[x86] Multiple reads on i8042 in one interrupt

Read i8042 until all data bytes are read out on a
single interrupt. atkbd_probe atleast completes now
but connect is still not called.

Signed-off-by: Himanshu Chauhan <hschauhan@nulltrace.org>