Alias imports for vendored requests deps
Alias imports for vendored requests deps

Some distributions unvendor pip while leaving other packages vendored.
In the case of this bug, pip's dependencies were unvendored while
requests did not have its dependencies unvendored. This caused a
problem where urllib3 was receiving a
pip._vendor.requests.packages.urllib3.Retry instance but expecting a
requests.packages.urllib3.Retry instance. Since they aren't the same,
urllib3 assumed it was an integer and we received a TypeError as
described in the bug report.

Creating aliases for urllib3 and it's submodules should fix this
(similar to how we specify six, six.moves, six.moves.urllib, packaging,
packaging.version, and packaging.specifiers)

In the case of urllib3's contrib modules, we need to be careful to
import them to prevent against future headaches without causing
an ImportError for the cli if the optional dependencies are not
available.

Closes #3282

atdaemon/pip,xavfernandez/pip,benesch/pip,pradyunsg/pip,atdaemon/pip,rouge8/pip,fiber-space/pip,pypa/pip,techtonik/pip,pfmoore/pip,pfmoore/pip,fiber-space/pip,techtonik/pip,techtonik/pip,esc/pip,nthall/pip,mindw/pip,zvezdan/pip,esc/pip,dstufft/pip,mindw/pip,esc/pip,willingc/pip,pypa/pip,natefoo/pip,rouge8/pip,sbidoul/pip,benesch/pip,dstufft/pip,xavfernandez/pip,RonnyPfannschmidt/pip,willingc/pip,willingc/pip,nthall/pip,zvezdan/pip,sbidoul/pip,benesch/pip,dstufft/pip,natefoo/pip,sigmavirus24/pip,zvezdan/pip,natefoo/pip,nthall/pip,rouge8/pip,xavfernandez/pip,RonnyPfannschmidt/pip,sigmavirus24/pip,atdaemon/pip,pradyunsg/pip,mindw/pip,fiber-space/pip,RonnyPfannschmidt/pip,sigmavirus24/pip