Add UTF-8 support for Text::ucfirst

By using UTF8::substr, UTF8::strtoupper, UTF8::strlen

Thanks to @Come2Daddy PR #521
This is a change in behaviour as `ucfirst()` only changes the case of the first character.