Adding a much better serial_read() function.

Function doesn't block forever or incur any unneeded complications.