Scroll position fixes

This is for issue #2774.

I added range checking on setScrollPos(). This fixes the worst part of the problem which is part of the screen being blank. This happens with *both* forward and backward Find, so both upper and lower range is checked.

This also fixes the unnecessary scroll when "b" is typed. I added code so that the "center on search" code does not change scroll position during findFirst (i.e. search while typing) when hit is in first half of page because the Find dialog appears to overlap page, so the appears to be a reverse scroll.