Changed bool to signed integer instead of unsigned char.
Since we treat this type similar to the enumerated ones internally,
with names and indices, we get lots of warnings about signed/unsigned
comparisions if the type is not signed, and also warnings about using
'char' array subscripts. The integer has worked on compilers this far,
so let's not make bigger changes than we have to!
(Yeah, I know I was the one who suggested we make it compatible with C++
1-byte-size booleans earlier today. Mea Culpa.)