Add limited support for setting/clearing kMCStringFlagIsSimple

The flag is cleared on any changes to the string (i.e whenever the native string gets deleted) and is only set when MCString[Un]MapCodepointIndices traverses the whole string and doesn't encounter any surrogate pairs.

A more clever implementation would set the flag when the string is created and only clear it when text containing surrogate pairs is inserted.