Autosetuptools

The autosetuptools branch fixes wheel installs compared to the previous PR.

This is a rough PR for discussion.

This version of pip uses its own copy of pkg_resources and installs setuptools when it needs it. It doesn't necessarily remove enough options from install command so the re-run only fetches setuptools (maybe add a special "only setuptools" flag) and it probably fetches the first package that needed setuptools twice.

If the install needs setuptools, NeedSetuptools() is raised. The runner catches it, runs the command with the same options, then retries with the original arguments to the install command.

We can't just add setuptools to the requirements in the same install loop because everything is installed at once or not installed at all; packages in the build/ directory are not added to sys.path when we're getting the egg-info. However when you're running setuptools' own setup.py then setuptools *is* available on sys.path by virtue of being the cwd.

Even without all the automatic rigamorole, being able to install setuptools without having a (working) version is nice. Just expect to need to run "python -m pip ..." if the wrapper script is trying to import a missing pkg_resources.

I think some of the bdist_wheel "needs setuptools to --use-wheel" checks (no longer the case after this patch) were mixed up with the "needs setuptools to build wheels" check that will be necessary.

I tried the distlib pkg_resources emulation but my virtualenvs tend to use enough pkg_resources features that I need the setuptools version.