Background thread serial communication
This release moves reading from serial to a background thread. Completed lines are placed on a queue to be read form the main thread.
This greatly improves responsiveness and it fixes errors created by the tiny (4K) serial input buffer in Python from overflowing. This was the cause of the control algorithm tab often not working in the web UI.