Fix an egregious strictness analyser bug (Trac #4924)
The "virgin" flag was being threaded rather than treated like an environment. As a result, the second and subsequent recursive definitions in a module were not getting a correctly-initialised fixpoint loop, causing much worse strictness analysis results. Indeed the symptoms in Trac #4924 were quite bizarre. Anyway, it's easily fixed. Merge to stable branch.