The QL-820NWB does not report status over TCP 9100 — brother_ql documents the
same limitation for its network backend. queryStatus therefore became
probeStatus, which reports reachable-with-unknown-state instead of failing.
Also fixes a real bug: the socket was destroyed straight after write, which can
discard data still queued in the kernel send buffer and truncate a ~190 KB job.
Now half-closes with end() and waits for flush, with a grace window for units
that never send FIN.
Takes the PNG renderBadgePng already produces, separates black and red
planes, and sends the job over TCP. Adds a serial queue per printer host so
simultaneous sign-ins cannot collide on the printer's single connection.
Not wired into printer.js yet.
Decodes the 32-byte status frames so cover open, roll empty, cutter jam and
wrong roll width are reported from the printer itself rather than inferred
from brother_ql stderr.
Implements the QL-8xx raster protocol in Node so badge printing no longer
needs the Python brother_ql CLI. Command sequence verified byte-for-byte
against a captured QL-8xx job.