Add optional bsdcat tool.

bsdcat works like zcat, bzcat, xzcat and similar tools, but auto-detects
source data format, which can also vary between multiple input files.
Use getopt() instead of getopt_long() in bsdcat for compatibility reasons.
Change bsdcat behavior to process as many files as possible.

Change is to match "cat" behavior of printing any errors (e.g. "unable to
open file") and continue to the next file instead of exiting on first error
encountered.
Minor cleanup of a redundant check in bsdcat cli parsing.
Minor style correction in bsdcat.
Merge pull request #70 from mk-fg/add_bsdcat_tool

Add optional bsdcat tool