Add the 'touch' invalidation strategy

A 'touch' marker is invalidated for any change that touches the marker,
including changes that end at the marker's start position or start at
the marker's end position.

This was the former behavior of 'inside' markers, which are now only
invalidated for changes that are truly *inside* the marker.

This distinction allows find-and-replace markers to use the 'inside'
strategy but spellcheck to use the 'touch' strategy. The logic is that
an edit occurring adjacent to a find result doesn't invalidate the
result, but an edit occurring next to a spellchecked word could actually
change the word.
Document 'touch' invalidation strategy