A NormalizedString takes care of processing an “original” string to modify
it and obtain a “normalized” string. It keeps both version of the string,
alignments information between both and provides an interface to retrieve
ranges of each string, using offsets from any of them.
Represents a Range usable by the NormalizedString to index its content.
A Range can use indices relative to either the Original or the Normalized string