Make debundling easier

* Installs import hooks to make it possible to import things from ``pip._vendor`` if they are debundled.
* Adds a flag for downstream re-distributors to use to unbundle things from ``pip._vendor``.
* Debundling does *not* adjust the ``install_requires`` of pip, downstream will still need to ensure that they have the correct list of dependencies.
* We do not test any versions other than what is pinned in ``pip/_vendor/vendor.txt``. 
* *Unrelated*: Properly handle comparison of ``Link`` objects with non ``Link`` objects.

The way this essentially works is that we install an import hook so that when you attempt to import ``pip._vendor.foo`` it first tries to import ``pip._vendor.foo`` and if that fails it falls back and will attempt to import ``foo`` and then adds it to ``sys.modules`` as ``pip._vendor.foo``.

Fixes: #1678
Fixes: #1651
So without the PIP_NO_VENDOR_FOR_DOWNSTREAM environment variable, I guess this would be replaced with a loop that cleared the _vendor directory of everything other than the __init__.py file?