The upload phase now fails if there is anything unexpected in the long
description such as uninterpreted roles (e.g., `:class:`). The ReST
specifications does call out that:
> Only pre-determined roles are recognized; unknown roles will
> generate errors.
I added a distcheck job in the tox.ini to make this easier to catch in
the future.
Decided to switch the tests to using asynctest so that we can guarantee
support on Python 3.7 and newer. Also added pins in setup.cfg and a
tox.ini file if you want to use it.