Added encoding support to ucfirst method

Uses mb_strtoupper and mb_substr to achieve Upper Case on first charater of each word along with encoding, following Text::ucfirst() behavior. Default encoding is UTF-8.

Exemple : Text::ucfirst('вы-рок', '-', 'UTF-8'); => 'Вы-Рок'
I'm not sure if it is good practice to use other library functions directly like this in other libraries. I will cause errors later on when changes are made to the other libraries. @shadowhand what do you think?