HAL_PX4: added a read buffer to the UART driver

this lowers the average cost of reading bytes by a large amount, and
prevents the GPS driver from chewing lots of time.
HAL_PX4: improved efficiency of serial writes

use buffer at a time writes when possible, and use O_NONBLOCKING to
avoid txspace()