The R_XML_IS_*() macros assume that `ch` has more than 8 bits, so they
can do clever subtraction and only perform a single comparison.
While we could add casts to those macros, the 0..255 clamping logic
also seems to assume there being more than 8 bits.
So these things considered it seems to make the most sense to do what
the original yxml code does, and use `unsigned`. It is also consistent
with r_xml_refend().