On systems where int8_t is defined as char, the {S,Uns}erialize(Stream&, signed char) functions become undefined.
This PR resolves the issue by testing {S,Uns}erialize(Stream&, int8_t) instead.
No behavior change on systems where int8_t is defined as signed char, which is the case for most other systems.
Fixes #29884.
An alternative approach is mentioned in #29884 (comment) as well.