Serial Port Improvements

Improve the state of serial port redirection:

* Greatly simplify existing code to reduce potential for errors
* Fix printing of test page with Epson TM-T88III receipt printer

The new code is much easier to read and modify. The old async code was unsafe in multiple places while also being broken. It's back in a working state for me at least, and we have much better utils in WinPR that we could leverage now to improve async and timeouts in serial communication.