Update Position member variables in FrameSelection after Node::normalize()

This patch changes Document::textNodesMerged(), which is called by Node::normalize(), for updating Position member variables in VisibleSelection hold by FrameSelection and moves Text node manipulation code to Text::mergeTextNodes() from Node::normalize() to use Text::setDataWithoutUpdate() instead of CharacterData::setDataAndUpdate(), which calls FrameSelection::textWasReplaced().

This patch is similar to r157272, which update Position members in FrameSelection after Text::splitText().

Node::normalize() is covered by existing 18 tests, such as LayoutTests/fast/dom/Node/normalize.html, LayoutTests/fast/text/setData-dirty-lines.html, and so on.

BUG=n/a
TEST=LayoutTests/editing/selection/selection-after-text-normalize.html
R=tkent@chromium.org

Review URL: https://codereview.chromium.org/23870005

git-svn-id: svn://svn.chromium.org/blink/trunk@158019 bbb929c8-8fbe-4397-9dbb-9b2b20218538