Don't repaint a ghost cursor

Previously when we recomputeCaretRect, we always invalidated
the previous position of the cursor, even if we hadn't
actually drawn a cursor in that location. This CL teach us
not to invalidate the old position.

This CL is adapted from http://trac.webkit.org/changeset/150396
and http://trac.webkit.org/changeset/150482, but modified a
bit to maintain the invariant that m_previousCaretNode is the
previous caret node.

I tried to write a test for this CL, but our repaint tests
assume that if you scroll a region, you need to repaint that
region. That's true for normal scrolling, but for composited
scrolling, we can actually scroll a region without repainting
it. We don't seem to have a good test harness for composited
repaint issues.

BUG=327045

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

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