FIX: support accents in ToUpper/ToLower

As we don't use locale, the unicode version of tupper/tolower only does [a-z] <-> [A-Z] leading to labels like "VARIéS" rather than "VARIÉS" or "L'âGE DE GLACE" rather than "L'ÂGE DE GLACE" in french in uppercase skins.
 
This fixes it by using a static table.

/cc @jmarshallnz 
You may have missed @t-nelson's comment, suggesting
```
return *(wchar_t*)a - *(wchar_t)*b;
```
I think though that what you have is probably safer, as wchar_t may be unsigned.