reactor_backend: Remove requests from pending queue earlier
reactor_backend: Remove requests from pending queue earlier

The aio_storage_context::submit_work takes the reactor's queue of
pending requests and converts the head of it into iocb-s. Then
all the generated iocbs are submitted into the kernel AIO and only
then the pending queue's head is cleaned.

The last step can be made earlier. Once the request is converted
into iocb there's no sence in keeping it in the pending queue.
Doing this earlier helps localizing the pending queue drain code
which in turn helps writing io-flow unit test and, eventually,
io cancellation unit test.

Signed-off-by: Pavel Emelyanov <c9a32589e048e044184536f7ac71ef92fe82df3e@scylladb.com>

cloudius-systems/seastar,avikivity/seastar,scylladb/seastar,avikivity/seastar,scylladb/seastar,cloudius-systems/seastar,syuu1228/seastar,scylladb/seastar,syuu1228/seastar,syuu1228/seastar,avikivity/seastar,cloudius-systems/seastar