Fix a bug to do with recursive modules in one-shot mode
The problem was that when loading interface files in checkOldIface, we were not passing the If monad the mutable variable for use when looking up entities in the *current* module, with the result that the knots wouldn't be tied properly, and some instances of TyCons would be incorrectly abstract. This bug has subtle effects: for example, recompiling a module without making any changes might lead to a slightly different result (noticed due to the new interface-file fingerprints). The bug doesn't lead to any direct failures that we're aware of.
Showing with 26 additions and 5 deletions