allFilesVisitor = function (entry) {
                    if (shouldShow(entry)) {
                        if (entry.isFile) {
                            allFiles.push(entry);
                        }
                        return true;
                    }
                    return false;
                }
@private

Returns a promise that resolves with a cached copy of all project files.
Used by ProjectManager.getAllFiles(). Ensures that at most one un-cached
directory traversal is active at a time, which is useful at project load
time when watchers (and hence filesystem-level caching) has not finished
starting up. The cache is cleared on every filesystem change event, and
also on project load and unload.

@param {boolean} true to sort files by their paths
@return {$.Promise.<Array.<File>>}