Release GIL in blocking AIO bindings (#8196)
The blocking parallel AIO bindings can call the handle's internal
`wait()` while retaining the Python GIL. An AIO worker may need that GIL
while completing PyTorch tensor cleanup. This causes a deadlock: the
Python caller waits for the worker, while the worker waits for the GIL
held by the caller.
This PR releases the GIL at the `pread`, `pwrite`, `sync_pread`, and
`sync_pwrite` pybind entrypoints to avoid the deadlock.
---------
Signed-off-by: Masahiro Tanaka <mtanaka@anyscale.com>