Bug 1067728 Part 1 - Generalize scroll frame boundary checking logic. f=mtseng, r=roc
Bug 1067728 Part 1.1 - Move IsRectVisibleInScrollFrames to nsLayoutUtils. f=mtseng, r=roc
Bug 1067728 Part 2 - Hide start or end selection caret if it's out of scroll frame. f=mtseng, r=roc

nsLayoutUtils::IsRectVisibleInScrollFrames() had been used by
TouchCaret. We do the similar check for SelectionCarets.
Bug 1067728 Part 3 - Hide utility bubble if entire selection is not visible. f=mtseng, r=roc

We cannot tell utility bubble to hide simply because both startFrame and
endFrame are not visible. When select-all is performed in a long scrolling
text area, both frame should be hid, but utility should show.