Add functions searching a word boundary without VisualPosition to 
HTMLTextFormControlElement.

SpellChecker::respondToChangeClient is called by FrameSelection::SetSelection.
We use VisiblePosition to find word and sentence boundaries and it cause 
synchronous layout.

However we implement text field as a shadow element including only div and text 
nodes.
It means we can find a word boundaries in a text field without VisiblePosition.

This CL introduce new Position functions, 
HTMLTextFormControlElement::startOfWord, endOfWord, startOfSentence and 
endOfSentence.
They doesn't cause synchronous layout and will be used from 
SpellChecher::respondToChangeClient to avoid synchronous layout.

Following is an implementation detail.
Source/core/html/HTMLTextFormControlElement.cpp/h:
- We introduce new Position functions, startOfWord, endOfWord, startOfSentence 
and EndOfSentence.
- They doesn't cause synchronous layout and be used from SpellChecher.
- Each of them works same as a corresponding 'Visible' function in VisibleUnit 
except they can be used to only text fields implemented as TextFormControlElement.

Source/core/html/HTMLTextFormControlElementTest.cpp:
- To confirm those 4 functions, we introduce the 
HTMLTextFormControlElementTest::WordAndSentenceBoundary test.
- It confirms each of them returns a same Position to a corresponding 'Visible' 
function in VisibleUnit on each Selection in a text field.

Source/core/rendering/RenderTreeAsText.cpp/h:
- We change visibility of the nodePosition function to debug DOM tree easily.
- The function is used in HTMLTextFormControlElementTest::WordAndSentenceBoundary test.

TEST=webkit_unit_tests  --gtest_filter=*TextForm*
BUG=382809

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

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