Basic caret positing logic

The basic caret positioning logic is now correct for adjusting the caret
for a scroll offset.  Unfortunately the MoveToMotionResult API attempts
to update the view which I don't want.  Need to refactor out the
maintain caret column support into a common function that can be
accessed here and in MoveCaretToMotionResult
Fixed the caret positioning code
Added the regression test
Merge pull request #1385 from jaredpar/fixes-1367

Fixes 1367