Rework utf8 support
Created by: cor3ntin
I'm making this issue to keep track of unicode related issue, but it's a low priority work
- Remove all wstring except at windows API boundaries.
- Enforce utf8 internally
- Proper support for unicode variables names in the compiler and everywhere else we use variables names
That implies
- normalizing the identifiers to a composed form
- use
XID_Start
/XID_Continue
properties to determine whether a given identifier is valid - Probably best to have a strong "identifier" type, rather than passing strings around
The issue is that most libs to do that are based on icu
- not too unreasonable since Qt depends already on it.
However, we may want to be something more suitable if the compiler is to be compiled to wasm or embedded directly on a device