Recover original WebViewImpl::setCompositionFromExistingText() with single text node case

This patch is another solution of issue 275457, which was fixed by r156473 to handle TEXTAREA specially.

This patch undoes r156473 and makes WebViewImpl::setCompositionFromExistingText() does original behavior, extract text of specified range, delete specified range then insert extract text, to keep assumption of composition node is single text node, except for root editable node contains single text node.

When root editable element contains single text node, we set composition node, offsets and underlines rather than modifying contents to prevent firing text change events which cause unexpected auto fill behavior as r155925.

Changes of WebViewTest.cpp are caused by stopping special handling of TEXTAREA to make contents of TEXTAREA into single text node. Offsets of composition underlines are based on composition node rather than plain text offsets, which used compositionStart/compositionEnd and selectionStart/selectionEnd in WebView API.

Note: This patch is intended to make small to merge into M30 branch. Other patches will fix FIXME items in this patch.

BUG=275457
TEST=webkit_unit_tests WebViewTest.SetCompositionFromExistingText* covers this change.
R=tkent@chromium.org

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

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