Rework fetch_bytes and _fetch_pypi_json patches to make testing easier. Various improvements to test_micropip. The main feature is a new fixture
'mock_fetch' with an add_pkg method that takes a package name, a map
from version to requirements, and a choice of platform. This should
hopefully make writing more tests a lot easier (which is good because
we could use more micropip test coverage but we are limited by the
difficulty of writing good tests).

This also adds a fixture to create distinct dummy package names and
enables @pytest.mark.asyncio to handle the async calls rather than
using `asyncio.get_event_loop.run_until_complete`.
package:
  name: pycparser
  version: "2.21"
source:
  url: https://files.pythonhosted.org/packages/62/d5/5f610ebe421e85889f2e55e33b7f9a6795bd982198517d912eb1c76e1a53/pycparser-2.21-py2.py3-none-any.whl
  sha256: 8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9
build:
  cross-build-env: true
test:
  imports:
    - pycparser
about:
  home: https://github.com/eliben/pycparser
  PyPI: https://pypi.org/project/pycparser
  summary: C parser in Python
  license: BSD

package:
  name: pycparser
  version: "2.21"
source:
  url: https://files.pythonhosted.org/packages/62/d5/5f610ebe421e85889f2e55e33b7f9a6795bd982198517d912eb1c76e1a53/pycparser-2.21-py2.py3-none-any.whl
  sha256: 8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9
build:
  cross-build-env: true
test:
  imports:
    - pycparser
about:
  home: https://github.com/eliben/pycparser
  PyPI: https://pypi.org/project/pycparser
  summary: C parser in Python
  license: BSD
