'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
```
Maybe sort the results?

```diff
diff --git a/pip/commands/show.py b/pip/commands/show.py
index a9cad3c..9b6ea3f 100644
--- a/pip/commands/show.py
+++ b/pip/commands/show.py
@@ -87,7 +87,7 @@ def print_results(distributions, list_all_files):
         logger.info("Location: %s" % dist['location'])
         logger.info("Requires: %s" % ', '.join(dist['requires']))
         logger.info("Requires recursive: %s" % ', '.join(
-            get_recursive_dependencies(dist['name'])))
+            sorted(get_recursive_dependencies(dist['name']))))
         if list_all_files:
             logger.info("Files:")
             if dist['files'] is not None:
```