Fix utf8::lowercase (bug #22139)

As ucs4::char is unsigned, we don't need to compare against the min value of
the type. Worse, we cast the (possibly signed) min value to ucs4::char, which
on plenty of systems, results in 2^31, excluding all valid unicode codepoints.

Fix by gfgtdf.
Patch by iceiceice. (PR #189)
Commit message by ai0867.