Implement $ in c_v mode.

Fixes: #522

At the same time, I rewrote -xvim_selectedRanges ^V mode so that it
doesn't use -lineNumber: and -positionAtLineNumber:column:, those
functions are in O(n) complexity of the file length and should be avoided
at all costs. Changing motions in c_v mode should not be in O(selection)
instead of O(selection^2). The performance gain at the end of a relatively
large file is really visible.
Use DVTKit -characterRangeForLineRange/-lineRangeForCharacterRange

Hopefully it has a better complexity than O(length_of_document)