decode-glz: Handle needing glz images before they have arrived
decode-glz: Handle needing glz images before they have arrived

With multi monitor guests, it is possible for a glz-image to refer to
bits from another glz-image which has not arrived yet! This can happen
because each monitor has its own display channel, and thus its own socket,
but they share the glz dict. Thus things can arrive out of order, with a
glz-image on display 1 arriving before the glz-image on display 2 which it
refers too.

This triggers the:
g_return_val_if_fail(w->images[slot]->hdr.id == id - dist, NULL);

In glz_decoder_window_bits(), which is what caused me to debug this, once
the out order thing was clear, so was the fix.
If w->images[slot]->hdr.id == id - dist is not true, we need to wait for the
correct image to arrive.

The out of order issue with multiple monitors can also trigger the
g_warn_if_reached() in glz_decoder_window_resize(), so remove that.

Signed-off-by: Hans de Goede <9fa1be1a5b5729e4c6b404f34c9ce49ff4882fd8@redhat.com>

Fantu/spice-gtk,elmarco/spice-gtk,dezelin/spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk,SPICE/spice-gtk,fgouget/spice-gtk,mathslinux/spice-gtk,mathslinux/spice-gtk,Fantu/spice-gtk,dezelin/spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk,Fantu/spice-gtk,Fantu/spice-gtk,flexVDI/spice-gtk,guodong/spice-gtk,mathslinux/spice-gtk,flexVDI/spice-gtk,elmarco/spice-gtk,mathslinux/spice-gtk,SPICE/spice-gtk,fgouget/spice-gtk,guodong/spice-gtk,SPICE/spice-gtk,elmarco/spice-gtk,guodong/spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk,fgouget/spice-gtk,SPICE/spice-gtk,dezelin/spice-gtk,guodong/spice-gtk,elmarco/spice-gtk,dezelin/spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk