The const DirectoryLookup * out-parameter of {HeaderSearch,Preprocessor}::LookupFile() is assigned the most recently used search directory, which callers use to implement #include_next.
From the function signature it's not obvious the const DirectoryLookup * is being used as an iterator. This patch introduces ConstSearchDirIterator to make that affordance obvious. This would've prevented a bug that occurred after initially landing D116750.