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.