Blink does not respect input.selectionStart and input.selectionEnd for some cases

Blink does not respect the input.selectionStart and input.selectionEnd. When
input.selectionStart and input.selectionEnd is set and then value is set the blink
always shows the selection with caret at end of text. This patch removes this
bug by caching the selectionStart and selectionEnd in m_cachedSelectionStart
and m_cachedSelectionEnd and checking the cached selection while setting
input value.

This patch also removes the bug specifying that caret poistion is incompatible after updating value
IDL attribute of unfocused INPUT element. When the value IDL attribute is updated of unfocused 
INPUT element the caret moves at the end but other browser move the caret at the beginning of the value.
The other browsers move the caret to the end of the value only if the INPUT is focused. 
This patch removes this bug too.

BUG=367736, 133242

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

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