Top level function to check if the version of an old interface file is equivalent to the current source file the user asked us to compile. If the same, we can avoid recompilation.
We return on the outside whether the interface file is up to date, providing evidence that is with a ModIface. In the case that it isn't, we may also return a found or provided ModIface. Why we don't always return the old one, if it exists, is unclear to me, except that I tried it and some tests failed (see #18205).