[Drivers] Removed interrupt-driven code from UART driver

This makes execution time more deteministic; other processes will never be interrupted.
It also makes the code LOTS simpler.