jiri: Use the latest update snapshot manifest when computing LocalProjects.

Previously, when computing LocalProjects with FastPath, we would read
the projects from the .jiri_manifest (or manifest specified on the
command line) and check to see if those projects exist on the local
filesystem.  If not, we fall back on the slow path of scanning the
entire filesystem for projects.

This behavior was incorrect.  In particular, since the .jiri_manifest
might have changed since the last update, we would end up scanning the
filesystem more often than necessary.

Now, we keep track of the latest update snapshot file with a symlink.
When computing LocalProjects, we read the manifest pointed to by that
symlink, which has a much higher probability of matching the projects on
the filesystem.  This will cause fewer filesystem scans.

MultiPart: 1/2
Change-Id: I526f30c8f4605edc02901dd8537e91baefc01807
10 files changed