GmshIO: define GmshPrimitive as signed char
A negative GmshPrimitive value is used to signal if a given cell type is not known.
Some architectures such as amd64 implement 'char' as 'unsigned char', hence GmshPrimitive must be a signed char in order to handle the negative value for unknown cell types.
Fixes: #22413.