This is a first, proof of concept diff showing how we can add mypy support to
our modules. A second one is coming next, for swh-model. There is more where
these come from, but I'd like to take the change of these first two to see if
this is something we like and is useful.
Note that this is only to make a bare-bone mypy run pass cleanly, it does *not*
add type annotations to the swh.core API. That can be done next, gradually;
there is no hurry. Still, having mypy pass allows to detect glaring type
errors, dunno, "1 + {}" expressions that would otherwise pass unnoticed.
About pre-buster Python compatibility: I'm using here comments for variable
annotations instead of PEP 526 which requires Python >= 3.6. I'm doing so to
avoid breaking production, but I don't know how to easily check that this is
fully Python 3.5 compatible---independent testing on this point is very
welcome.