lib: defer collecting streams when ack'ing empty frames
lib: defer collecting streams when ack'ing empty frames

When processing ACK frames, quiche collects streams if the conditions
are suitable. Previously, endpoints exchanging 0-length STREAM frames
could confuse things, causing the stream to be collected while still
readable(). Applications that attempted to call stream_recv() would
encounter a InvalidStreamState error.

This change adds a check for is_readable() to the ACK processing, and
a test case to demonstrate the sequence of events that previously
triggered the error.

cloudflare/quiche,cloudflare/quiche,cloudflare/quiche