Fix wchar and dchar C++ mangling

```d
extern(C++){
    void fc2(wchar){}
    void fc4(dchar){}
}
```

```
2.065 x86/x64
void fc2(wchar) ?fc2@@YAX_Y@Z ?
void fc4(dchar) ?fc4@@YAXK@Z  void __cdecl fc4(unsigned long)

2.066.0-rc2 x86
void fc2(wchar) ?fc2@@YAXG@Z  void __cdecl fc2(unsigned short)
void fc4(dchar) ?fc4@@YAX_Y@Z ?

2.066.0-rc2 x64
void fc2(wchar) ?fc2@@YAXG@Z  void __cdecl fc2(unsigned short)
void fc4(dchar) ?fc4@@YAX_W@Z void __cdecl fc4(wchar_t)

fixed
void fc2(wchar) ?fc2@@YAX_W@Z void __cdecl fc2(wchar_t)
void fc4(dchar) ?fc4@@YAX_K@Z void __cdecl fc4(unsigned __int64)
```

Twchar is a 16 bit type, which is why it has a 't' name mangling, to match Tuns16. Linux C has no concept of a 16 bit wchar type, it is not wchar_t.