Rework of the x86 irq stack handling:

  The irq stack switching was moved out of the ASM entry code in course of
  the entry code consolidation. It ended up being suboptimal in various
  ways.

  - Make the stack switching inline so the stackpointer manipulation is not
    longer at an easy to find place. This also gets rid of the unnecessary
    indirect calls.

  - Avoid the double stack switch in interrupt return and reuse the
    interrupt stack for softirq handling

  - Provide the necessary objtool changes to handle the inline stack
    swizzling.