Use Project.FullName as keys in project cache

Fix #634.

Project.UniqueName is null or raises exceptions in some situations. Consequently, corresponding project providers can't be added to the project list, and Rename Refactoring reports that the renaming symbol isn't found in the project list.

Project.FullName is much safer to use.