Rewrite of /printer to have an optimized multithreaded serial connection to the printer.  Upon connecting to the printer a new thread is created and thread safe buffers are used for commands, responses, and log data communication to and from the main thread(s).  The separate thread is carefully written to be very fast and responsive.  This prevints long gui operations, such as opengl draws from causing buffer underuns in the printer.  Also fixed a number of connection related bugs.  Always connects reliably to the printer.  printer.send() accepts multiline gcode commands that are guarenteed to be atomic even while printing is active and multiple threads are calling printer.send() at the same time.