* Major refactor of display.js queue to assume async rect processing in order to accommodate threaded decode or udp
* QOI lossless decoder on worker threads using WASM
* rfb.js class to provide frame_id and rect counts per frame
Co-authored-by: ryan.kuba <ryan.kuba@kasmweb.com>
Co-authored-by: matt <matt@kasmweb.com>
This is what the browser wants so it avoids having to spend time
converting everything. Unfortunately it usually means the server instead
needs to convert it for us, but we assume it has more power than we do.
We accidentally removed the code updating the data index in 8a189a6,
resulting in the decoder newer consuming any data. So the data would
be parsed as the next rect, causing weird errors.