Alter the use of the Link objects in PackageFinder to store the version and package name

Also fixes bug I noticed in pip/commands/list.py where an uninitialised variable could have been used.

I tried to rebase, honest, and it just made more commits. I'm going to stop trying to clean it up now.