'pip freeze PKG' outputs the installed version of PKG and its dependencies

This pull-request is a proposal around "recursive dependencies listing":

* `pip freeze PKG` outputs only version of PKG (a subset of `pip freeze`)
* `pip freeze --recursive PKG` outputs versions of PKG and its (recursive) dependencies
* `pip show PKG` also outputs "Require recursive: " which contains PKG's recursive dependencies (not PKG itself)

My motivation (i.e. my use case) is to get a known good set of versions for a project.
As a developer, in order to get the known good set of versions of a project,
Given a Python environment (typically a virtualenv) where my project is installed,
Given I made sure project works in this environment (i.e. validated the "known good" set of versions)
Given the environment contains other projects and developer tools (such as bpython, pytest, tox, ...)
I want to get the versions of PKG and its dependencies only, i.e. ignore everything in the environment not required by my project.

An example... Let's install bpython, Sphinx and Fabric:

```console
$ pip install bpython Sphinx Fabric
```

`pip freeze` works as always:

```console
$ pip freeze
bpython==0.13.1
docutils==0.12
ecdsa==0.11
Fabric==1.9.0
Jinja2==2.7.3
MarkupSafe==0.23
paramiko==1.14.0
pycrypto==2.6.1
Pygments==1.6
Sphinx==1.2.2
```

`pip freeze bpython` shows only versions of bpython:

```console
$ pip freeze bpython
bpython==0.13.1
```

`pip freeze --recursive bpython` and its recursive dependencies, a.k.a. versions of everything related to bpython in the current Python environment:

```console
$ pip freeze --recursive bpython
bpython==0.13.1
Pygments==1.6
```

Same idea for `pip freeze Sphinx` and `pip freeze --recursive Sphinx`:

```
$ pip freeze Sphinx
Sphinx==1.2.2

$ pip freeze --recursive Sphinx
docutils==0.12
Jinja2==2.7.3
MarkupSafe==0.23
Pygments==1.6
Sphinx==1.2.2
```

`pip freeze bpython Sphinx` displays frozen versions for both bpython and Sphinx:

```console
$ pip freeze bpython Sphinx
bpython==0.13.1
Sphinx==1.2.2

$ pip freeze --recursive bpython Sphinx
bpython==0.13.1
docutils==0.12
Jinja2==2.7.3
MarkupSafe==0.23
Pygments==1.6
Sphinx==1.2.2
```

`pip show bpython Sphinx` has additional "Requires recursive: " items:

```console
$ pip show bpython Sphinx
---
Name: bpython
Version: 0.13.1
Location: /mnt/data/web/django-generic-filters/env/pip/lib/python2.7/site-packages
Requires: pygments
Requires recursive: pygments
---
Name: Sphinx
Version: 1.2.2
Location: /mnt/data/web/django-generic-filters/env/pip/lib/python2.7/site-packages
Requires: Jinja2, Pygments, docutils
Requires recursive: markupsafe, Pygments, Jinja2, docutils
```
Rather than just lowercasing the name, you might want to use the canonical form of the name (```-``` and ```_``` should be treated as the same, IIRC). I think you should be using the ```safe_name``` function from setuptools, but pip should probably implement its own "canonical name" function in ```utils``` or somewhere. @dstufft?

For now, just a ```.replace, '_', '-')``` is probably good enough though.