Fix heap live-in calculation
Update the code in liveness that sets the `fgCurHeapUse` flag (which needs
to identify whether the current block has an upwards-exposed use of the
heap) to set this unconditionally for opcodes that use the heap.
Previously, this code was avoiding setting the flag if the block has a
prior def of the heap, but in the absence of a guarantee to the contrary,
we must assume that the heap use may not alias the heap def, and so still
be upwards-exposed and cause the heap to be live-in to the block.
Also remove the OptRepeat workaround for the lack of this, in
`ResetOptAnnotations`.
Fixes dotnet/coreclr#7846.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d8e66b969c31360f89ac6afa9008fd8cf85219aa