It actually makes the binaries smaller, the code easier to read
(gems like "val == true", "val == false" are gone) and actually
predictable in the sense of that we actually know what we're
working with (one bitwise operator was quite adventurous and
should now be fixed).
This is also more consistent with the other suckless projects
around which don't use boolean types.
These used to live in TODO but we got rid off them. Make sure
we keep track of what we want to support by printing a message
when those flags are unimplemented.
Factor out the code from md5sum and sha1sum into a util function.
Use FILE * instead of a file descriptor. This will make it a bit
easier/more consistent when we implement support for the -c option.