rts: Do not traverse nursery for dead closures in LDV profile
It is important that heapCensus and LdvCensusForDead traverse the
heapCensus increases the not_used counter which tracks how many
closures are live but haven't been used yet.
LdvCensusForDead increases the void_total counter which tracks how
many dead closures there are.
The LAG is then calculated by substracting the void_total from
not_used and so it is essential that not_used >= void_total. This
fact is checked by quite a few assertions.
However, if a program has low maximum residency but allocates a lot in
the nursery then these assertions were failing (see Trac #16753 and Trac #15903)
because LdvCensusForDead was observing dead closures from the nursery
which totalled more than the not_used. The same closures were not
counted by heapCensus.
Therefore, it seems that the correct fix is to make LdvCensusForDead
agree with heapCensus and not traverse the nursery for dead closures.