Clean up DXE's IRQ handling

Free irq's on shutdown
Check for errors
Refactor and move irq allocation to dxe_init