When multiple coverage reports are uploaded to Codecov, it merges the
reports, which is what we want in this situation. So for example, if the
code branches on Python version or OS version, we'll cover those
branches across tests.
This patch switches the CI from Travis-CI to GitHub Actions.
The new CI script drops support for Python 3.4 (EOLed 18 March 2019) and
Python 3.5 (EOLed 13 September 2020), though it keeps support for Python
2.7 (EOLed 1 January 2020). This keeps the CI configuration a lot
simpler.
The new CI script also simplifies code coverage: a single coverage
report is produced for Python 3.9 on Ubuntu. There are no coverage
statistics being collected and uploaded for older versions of Python 3,
Python 2, or other OSes.