Buffer flow plugins added. TinyG has a plugin.

Added ability for buffer flow plugins. There is a new buffer flow plugin

for TinyG that watches the {"qr":NN} response. When it sees the qr value
go below 12 it pauses its own sending and queues up whatever is still
coming
in on the Websocket. This is fine because we've got plenty of RAM on the

websocket server. The {"qr":NN} value is still sent back on the
websocket as
soon as it was before, so the host application should see no real
difference
as to how it worked before. The difference now though is that the serial
sending
knows to check if sending is paused to the serial port and queue. This
makes
sure no buffer overflows ever occur. The reason this was becoming
important is
that the lag time between the qr response and the sending of Gcode was
too distant
and this buffer flow needs resolution around 5ms. Normal latency on the
Internet
is like 20ms to 200ms, so it just wasn't fast enough. If the Javascript
hosting
the websocket was busy processing other events, then this lag time
became even
worse. So, now the Serial Port JSON Server simply helps out by lots of
extra
buffering. Go ahead and pound it even harder with more serial commands
and see
it fly.