auto-compile-on-load: handle semi-recursive case

When file A provides B and *then* requires B; and B requires A the
Auto-compile attempted to compile A multiple times.  Now it keeps
track of the files that are being loaded and if the current file to be
loaded is already in that list it does not recompile that file again.