uc(): Handle Greek YPOGEGRAMMENI
Unicode contains two context-sensitive case-changing rules. This patch
enables one of them, dealing with the Greek YPOGEGRAMMENI. The code had
been #ifdef'd out, so the changes here are more than what the diff
shows. The reason it was #ifdef'd out was because more research was
needed to verify that it was correct, which I have now done, and think
it is.
The issue is we may just be uppercasing a portion of the context, so
don't have complete knowledge of what should be done. This patch causes
us to move the ypogegrammeni to as far right as it should go, or to the
end of the context we know about, whichever comes first. That's the
best we can do. If it really should be moved further to the right,
there's no way we can do it, because the user has not called uc()
with the full information needed. So, in all cases, this is better than
just leaving it where it was in the input. Also, the applicable context
is limited to a logical character, that matched by /\X/, so if the user
is calling uc() on a subset of a logical character, it really is their
mistake.