Fix line duplication in React editor

I tracked down the source of occasional duplicate lines. To prevent jerking to a stop when the target of a mouse wheel event is removed from the DOM, I preserve the screen row associated with the latest mouse wheel.

There were some situations in which the `mouseWheelScreenRow` wasn't getting cleared or was being set unnecessarily, so I fixed those. I also never preserve a line associated with the `mouseWheelScreenRow` if it's in the rendered row range.

It's still possible to set the `mouseWheelScreenRow` without it getting cleared by scrolling up/down at the beginning/end of the file and not actually causing the scroll position to change. I'd like to get a fix in for that before merging this.