Replace __disable_irq with a save/restore mechanism
Finish implementing interrupt-driven USART
Different approach to reentrant DISABLE_IRQ, this time without fencing problems