fetchPypi doesn't use python under the hood and doesn't need to be tied
to a specific version of python. Moving it to top level makes it more
consistent with other fetchers and makes code generation easier.
This introduces the `dist` argument to the `computeWheelUrl`, that
allows the distribution format in the path to differ from the python
version.
A wheel can be py3 and still have their file below the py2.py3 dist url.