functionalize asyncio.subprocess, improve logic
Timeout individual Git operations instead of overall, allowing one operation to timeout without aborting all other pending operations.
This is especially useful for "git pull" and "git fetch". It's implemented in src/gitutils/git.py:subprocess_asyncio().
The calling async function calls with asyncio.wait_for() to implement and catch the timeout.