Fix HardwareSerial peek() and read() functions for TivaC

- peek() would loop forever if the RX buffer was empty.
- read() would increase the buffer read pointer even if no byte was read because the buffer was empty.