Add topmostParentWithParent: method to ViFold.

This method allows you to find the topmost parent of a fold
whose direct parent is a given marker fold.
Simplify and fix fold creation when overlapping ranges.

In particular, creating a fold that overlaps parts of existing
ranges will properly set up parent-child relationships so that
the newly created fold expands to encompass all parent
folds until we hit a common parent. Legitskiness follows.