Large Change - Mainly Serial

Converted all Serial connection handling to a separate class  and an
Object to hold all related variables and call all functions.  Object
construction passes "this" the main draw window handle, inside for
calls to the Serial library.  Several connection-related redundant
variables, mostly booleans, were removed.

Interestingly, if data was on and then the Viewer was closed, the
Arduino takes much longer to receive a stop command, clear the Serial
buffer, and respond accordingly than the USB model.  TODO - find a way
for the Arduino to recognize when the data it sends is no longer being
received.

This commit also includes changes to work out several bugs seen during
connection, settings update, and page swap.  The change mainly involves
relocating EstablishDataLink() to the end of UpdateSettings().