Graying out unused declarations

Why do we need yet another cache for projects? I think most of the work is done in `CreateForProject`; another cache level doesn't help much.