Restructure ProjectFileInvalidator.findInvalidated a bit
I plan to modify `ProjectFileInvalidator.findInvalidated` to allow
it to use `FileStat.stat` instead of `FileStat.statSync`.
Restructure `findInvalidated` a bit so that `FileStat.statSync` is
called in only one place.
Note that this change now always counts the `.packages` file as one
of the files scanned, even if it does not exist. I think that this
is okay since it more accurately reflects the number of times that we
hit the filesystem with `stat()`, and it is consistent with how other
files are counted.