Guarantee that read-in files don't violate the standard.

Interestingly, I even find references in K&R2 that violate the standard,
very similar to the code I corrected. fgetc() returns an unsigned char
cast to int, and if your machine's implementation uses signed chars,
if Epoch is compiled in C99 mode, it's possible for things to go sour,
depending on your compiler, since in C99 the compiler is given the choice
to raise a signal instead of being forced to try and convert it into a valid
value. If there is binary data in one of the files that's read in, this is possible.

char does not trap: 6.2.6.1 of the C99 standard:
"Certain object representations need not represent a value of the object type. If the stored value of an object has such a representation and is read by an lvalue expression that does not have character type, the behavior is undefined. If such a representation is produced by a side effect that modifies all or any part of the object by an lvalue expression that does not have character type, the behavior is undefined.41) Such a representation is called a trap representation."

Therefore, this fixes it.