Refactor UART driver to use send()/recv() model.