Auto-expand char/wchar_t typedefs

Depending on context, such types have to become byte/wchar_t or
zstring/wstring. The problem is that a single typedefs can be used for
both cases, which means that the type can't be fixed up in the typedef
declaration, but only where it is used - i.e. it has to be expanded.