use asyncio.Runner for tests
Backported to SQLAlchemy 1.4 an improvement to the test suite with regards
to how asyncio related tests are run, now using the newer Python 3.11
``asyncio.Runner`` or a backported equivalent, rather than relying on the
previous implementation based on ``asyncio.get_running_loop()``. This
should hopefully prevent issues with large suite runs on CPU loaded
hardware where the event loop seems to become corrupted, leading to
cascading failures.
Fixes: #12668
(cherry picked from commit
4bc12e6abda97386b2eb66aff21312d010e57e1d)