Fix the attributesAtIndex:effectiveRange: method signature.

ViTextStorage overrode this with anIndex being of type
+unsigned+, but the type should have been +NSUInteger+.
Make ViTextView's getLineStart:end:contentsEnd:forLocation: fold-aware.

This means that anyone (for example, yy, j, k, _, ^, $, etc)
using line start/end when a fold is closed will treat the whole
fold as one line instead of treating it as multiple lines, with
the end: and contentsEnd: indices set to return the
end:/contentsEnd: of the last line in the fold.
Drop commented out code for caret updates with folds.
Make caret setting fold-aware.

When moving the caret into a fold from outside, always set
the caret to the first character in the fold. When moving the
caret within a fold, open the fold.