Re-vendor distlib
Merge pull request #1844 from pfmoore/distlib-019

Re-vendor distlib
Clarify requirement specifier format

If you use single or double quotes in a `requirements.txt` file, pip exits with an error. This change clarifies that single or double quotes should only be used in the shell.
Remove unnecessary imports, move some to six
Overwrite old scripts when installing from wheel.

Fixes #1800
Fix flake8 error.

Github's online editor is bad...
req: Support --no-use-wheel flag in requirements.txt

Default from pip 1.6 will be to always use wheels, so the --use-wheels
in requirements.txt is now deprecated. However, the --no-use-wheels
is introduced to be able to disable wheel usage via requirements.txt.
Document the --no-use-wheel in requirements.txt
Merge branch '1.5.X' into develop
Merge pull request #1855 from methane/patch-1

Overwrite old scripts when installing from wheel.
Merge pull request #1854 from Ivoz/compat-cleaning

Remove unnecessary imports, move some to six
Removed reduce from pip's compat module

It already has a consistent location across Py2/3.
Merge pull request #1877 from alex/reduce

Removed reduce from pip's compat module
query installed requirements for extras

fixes issue where egg_info('requires.txt') does not exist
for packages installed from wheels.
Merge pull request #1896 from dstufft/extras_after_wheel

Query installed requirements for extras
Merge pull request #1859 from nailor/support-no-use-wheel

req: Support --no-use-wheel flag in requirements.txt
Add #1859 to the changelog
Merge pull request #1848 from daviewales/clarify-documentation

Clarify requirement specifier format
Proposed fix to #1180 (and maybe #932 & #1104)

This is a rebased final version of a proposed solution to fix
issues #932, #1104 & #1180. Following changes have been done:

* Implemented a new class `PipXmlrpcTransport` using a
  contained `PipSession` object.

* Modified the `pip/commands/search.py` to make use of the
  `PipXmlrpcTransport` class.

* Properly initialized options for testing `SearchCommand`:
  - Changed `options_mock` to an `options` object built from
    `parse_args`, to properly initialize default options.
Use a regex to avoid hard coding version branches