regexec.c: Tighten loops in regrepeat()
regrepeat() is used to match some simple thing repeatedly in a row. In
the case of EXACTFish nodes, it will repeat a single character (and its
fold). Prior to this commit, it was using the full generality of
foldEQ_utf8() whenever the target was encoded in UTF-8. This full
generality requires quite a bit of processing. However, most
Unicode folds are of the simple variety containing just a character and
its upper- or lower-cased equivalent, and so the full generality of
foldEQ_utf8() is needed only comparatively infrequently.
This commit takes advantage of the newly added and enhanced
S_setup_EXACTISH_ST_c1_c2() to look at the character being repeated and
decide what level of generality is needed. regrepeat() then uses a loop
that is only as complicated as needed.
This also adds some asserts that the nodes contain exactly 1 character