Duplication of server and test client functionality
Within scripts/run_server.py:
- wrapping of uvicorn start in python Process and
- Retry pool (= implementation of test client),
are also replicated in some unittests e.g. test/test_apy.py
Consolidate these into modules; should also make API-related tests more readable