Add manual folds array to ViDocument.

We initialize it with a null for each line when the document loads. This
array will be to keep track of user-set folds.
Add createFoldForRange: to ViDocument.

This registers a fold for a given range of content. Currently
it only deals with one level, setting a flag when there is a
fold. More sophistication to come.

Note that folds are linewise, so the range is resolved to a
set of line numbers and folding set on those lines.
Add zf and zF for setting folds.

zf[motion], zf in visual mode, and [count]zF work to set
a fold for a given range of lines.
Add foldRangeAtLocation: to ViDocument.

This function looks up the range of the fold at a given
location in the document. The returned range is from the
first character of the first line of the fold to the last character
of the last line of the fold.
Add ]z and [z for moving to the start and end of a fold.