Get rid of redundant layout tree update related to selection

This patch gets rid of redundant layout tree update regarding selection getter
to recover execution speed in Speedometer performance test.

Since CL[1], |FrameSelection| getters updates layout tree on-demand rather than
invalidated values, e.g. |VisibleSelection| can hold invalid positions after
style and DOM tree modification. However, following getters in |FrameSeleciton|
don't need to clean layout tree:
 - affinity()
 - isNone() for |TextControl|
 - isRange() for |TextControl|
 - start()/end() for |TextControl|
 - checking editability base on selection start position; it is enough to check
   one of base or extent is ediable since selection can not cross editing
   boundary.

[1] crrev.com/2680943004 Make FrameSelection to hold non-canonicalized positions

BUG=692537
TEST=Speedometer performance test

Review-Url: https://codereview.chromium.org/2698793003
Cr-Commit-Position: refs/heads/master@{#451270}
9 files changed