Improve coverage and performance of CI
This MR:
- increases OS coverage: adds debian 10, debian testing
- increases Ansible coverage: adds Ansible 2.9 and 2.10
- at the same time, reduces the number of jobs from 41 to 20 by running all functional tests in the same job
- reduce setup time by using pre-built wheels instead of building some packages from source
- uses a virtualenv to better isolate packages
Unfortunately, this breaks the dstat test on Debian, so I had to disable it.
The total pipeline time is more or less the same as before (around 10-14 minutes), but this is due to conflicting performance changes:
- there is less queuing because we run less jobs in parallel
- but we introduced functional testing with debian 10, which slows down the pipeline because python 3.7 is slower
Jobs with python 3.7 are roughly twice as slow as more recent versions of python, mostly due to package installation.