dav1d: Don't always immediately drain all pending frames

By only draining up to a single frame per `dav1d_send_data()` call, up
to `max_frame_delay` frames are queued up in the decoder and decoded in
parallel. Previously the code would always drain all frames immediately,
which made frame threading not very useful.

In addition this also works around a deadlock in dav1d on certain
20 jobs for !3147 with dav1d-frame-threading in 17 minutes and 54 seconds (queued for 3 seconds)
merge request