Change string comparisons to normalize to NFC prior to comparing.
The procedures that return index values have not been updated since it's not
obvious what to do with them. Comparison is meaningless for non-normalized
strings, so it's necessary that all comparisons be done between normalized
strings. This means either (a) require compared strings to be normalized before
calling the comparator, or (b) have the comparator do normalization on the
arguments. If (b) is chosen, then the returned index value will be wrong in the
case where the arguments aren't normalized, as it will refer to the normalized
strings, not the arguments.
I'm considering choosing (b) and changing the definitions of these procedures to
return a slice into the normalized strings instead of an index. However, the
upcoming implementation of immutable strings may make it simple for every
immutable string to be normalized, which may make (a) feasible.
For now I'm going to ignore this, which is fine as long as only ASCII strings
are compared.