Some DXE improvements.

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