Separate pip freeze command from operation

By extracting the logic into pip.operations.freeze, the hope is that
folks could do a freeze programmatically more easily.
Do not use hardcoded slash separator for windows support
Expand our regex to support the new PEP 440 version characters
Make installed_version work for wheel

by using `pkg_resources.get_distribution` instead of calling pkg_info
method. Wheels don't have a .pip-egg-info folder.

See: GH-2202
Merge pull request #2211 from davidovich/fix_test_runner_windows

Do not use hardcoded slash separator for Windows support
Upgrade distlib to 0.2.0
remove unused unpack arg from build_location
Merge pull request #2214 from dstufft/upgrade-distlib

Upgrade distlib to 0.2.0
Merge pull request #2215 from xavfernandez/build_location_unpack

remove unused unpack arg from build_location
Add test_installed_version_not_installed

Checks what happens when user tries to get `installed_version` property
for a InstallRequirement object when that distribution is not installed.
Display URL downloading from

instead of just filename when using index other than PyPI.

It's useful to distinguish between downloading from PyPI or from an
internal devpi server, for example. In the latter case, it is useful to
see the full URL, to know which index pip is downloading from.

E.g.:

Downloading from PyPI is unchanged:

    $ pip install --no-cache-dir --ignore-installed Jinja2
    ...
      Downloading Jinja2-2.7.3.tar.gz (378kB)

But downloading from a different server results in displaying the full
URL:

    $ pip install --no-cache-dir --ignore-installed -i http://mirror.picosecond.org/pypi/simple jinja2
    ...
      Downloading http://mirror.picosecond.org/pypi/packages/source/J/Jinja2/Jinja2-2.7.3.tar.gz (378kB)
Upgrade lockfile to 0.10.2
Upgrade packaging to 14.5
Merge pull request #2218 from dstufft/upgrade-lockfile

Upgrade lockfile to 0.10.2
Upgrade CacheControl to 0.10.7
Merge pull request #2216 from dstufft/upgrade-packaging

Upgrade packaging to 14.5
Merge pull request #2206 from msabramo/make_installed_version_work_with_wheel

Make installed_version work for wheel
Merge pull request #2183 from msabramo/display_url_downloading_from

Display URL downloading from
Update changelog to include note about PR#2183
Use __all__ instead of # noqa