Implement our own requires.txt parser
Implement our own requires.txt parser

This replaces importlib.metadata's parser and allows us to "properly"
normalize extras as we need. It is not wrong for importlib.metadata to
not normalize extras --- if extra normalization is standardized
properly, packaging.markers should instead implement 'evaluate()' to
properly normalize on comparison, instead of just doing a naive string
equality check. Unfortunately, no-one has made a concrete effort to make
that happen yet, so pip needs to do what it needs to do to keep things
working.

pypa/pip,sbidoul/pip,pfmoore/pip,pypa/pip,pfmoore/pip,pradyunsg/pip,sbidoul/pip,pradyunsg/pip