Add Python 3.9 to CI

Python 3.9 was released on October 5, 2020. Add Python 3.9 to CI, tox configuration and update classifiers in setup.py

## Expected Result

What you expected.

## Actual Result

What happened instead.

## Reproduction Steps

Tests pass on Python 3.9.0

```
tox -e py39
GLOB sdist-make: /root/checked_repos/requests/setup.py
py39 create: /root/checked_repos/requests/.tox/py39
py39 inst: /root/checked_repos/requests/.tox/.tmp/package/1/requests-2.24.0.zip
py39 installed: certifi==2020.6.20,chardet==3.0.4,idna==2.10,requests @ file:///root/checked_repos/requests/.tox/.tmp/package/1/requests-2.24.0.zip,urllib3==1.25.10
py39 run-test-pre: PYTHONHASHSEED='2412316346'
py39 run-test: commands[0] | python setup.py test
running test
WARNING: Testing via this command is deprecated and will be removed in a future version. Users looking for a generic test entry point independent of test runner are encouraged to use tox.
running egg_info
writing requests.egg-info/PKG-INFO
writing dependency_links to requests.egg-info/dependency_links.txt
writing requirements to requests.egg-info/requires.txt
writing top-level names to requests.egg-info/top_level.txt
reading manifest file 'requests.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'requirements.txt'
writing manifest file 'requests.egg-info/SOURCES.txt'
running build_ext
========================================================================= test session starts ==========================================================================
platform linux -- Python 3.9.0, pytest-6.1.1, py-1.9.0, pluggy-0.13.1
cachedir: .tox/py39/.pytest_cache
rootdir: /root/checked_repos/requests, configfile: pytest.ini
plugins: forked-1.3.0, httpbin-0.0.7, cov-2.10.1, mock-3.3.1, xdist-2.1.0
gw0 [555]g 0 items / 1 error                                                                                                                                           
................................................................................................................................................................ [ 28%]
...................................................................x............................................................................................ [ 57%]
.....................s......s................................................................................................................................... [ 86%]
............................................................ssssssssss.....                                                                                      [100%]
================================================================================ ERRORS ================================================================================
_________________________________________________________ ERROR collecting docs/_themes/flask_theme_support.py _________________________________________________________
docs/_themes/flask_theme_support.py:2: in <module>
    from pygments.style import Style
E   ModuleNotFoundError: No module named 'pygments'
======================================================================= short test summary info ========================================================================
ERROR docs/_themes/flask_theme_support.py - ModuleNotFoundError: No module named 'pygments'
=================================================== 542 passed, 12 skipped, 1 xfailed, 1 error in 132.95s (0:02:12) ====================================================
ERROR: InvocationError for command /root/checked_repos/requests/.tox/py39/bin/python setup.py test (exited with code 1)
_______________________________________________________________________________ summary ________________________________________________________________________________
ERROR:   py39: commands failed

```

Hi,

Could you please add some clarification. Are you saying that the above tox output is as we want it? Do we want py39 to fail?

You said "Tests pass on Python 3.9.0" but I don't think they do, it says py39 commands failed.

Perhaps it is ok for the majority of tests to pass and these errors/x failed are not significant?

Please help me understand, thank you.



The test cases pass it seems the command also collects docs folder without dependencies installed and fails. Tests pass on 3.9.0 so adding it will be good to tox n CI.

Can I try solving this issue ?

This should be resolved in #5652.