Regression: Incorrect char type resulted in SIGPIPE.
The uint8_t/int8_t was changed into char recently.
This change appears to have be incomplete for the Byte Dump program.
Update the code to be aware of PIPE by passing a NULL string to represent a PIPE instead of a file.
While fixing this, go ahead and replace read() with fgetc().
This is more efficient due to the use of a file stream.
The use of read() is originally done for testing some of the lower-level FLL design.
This testing is no longer necessary so it is worth switching to fgetc().
Future design may merit reading larger chunks than 1 character at a time.
The use of fseek() is now available and in use (for non-PIPEs).