Added TinyG Support

Added checkbox to the Open/Close region of the UI to specify a TinyG
mode when opening the com port to your controller. Grays out when open
so you can't change mode once connected. Had to change the command
pipeline to wrap your Gcode into JSON strings before they're sent to the
TinyG. The JSON strings allow Universal Gcode Sender to pretty much work
the way it always works--which is that it expects one newline for every
command successfully processed by your controller. The default text mode
of TinyG can send back any number of newlines, or none at all, for each
command. JSON mode mostly solves that. This is tested with a full run of
about 10,000 lines of Gcode and it works well. Also made sure not to
break any test cases by creating several additional constructors or
chaining of method calls to support other parts of the code without
breaking it.