clients/tests: run nmcli commands in parallel
Most nmcli calls from clients/tests don't change the server's state. Hence, they can easily run in parallel. Run tests in parallel. No longer handle one nmcli invocation after the other. Instead, spawn groups of processes in parallel, and track the pending jobs. Only at certain synchronization points we call self.async_wait() to wait for all previous jobs to complete. This reduces the test time on my machine from 7 to 3 seconds. Arguably, that matters less during a full `make check -j 8`, because the entire set of tests anyway takes longer than 7 seconds. So when running the entire test suite, the machine is kept busy anyway. It matters however for manual invocations.
Showing with 261 additions and 194 deletions