Change MCString{Lower,Upper}case to take a LocaleRef

Casing is a locale-dependent operation.
Expand number <-> character conversion options

The following functions have been added: numToNativeChar, numToUnicodeChar, nativeCharToNum, unicodeCharToNum.

The existing numToChar and charToNum functions pick the appropriate form based on the Unicodeness of the context.