tiff: refactor deflate support in a separate function

Report when zlib support is missing.
tiff: refactor fax support in a separate function
tiff: cleanup the error paths

Return the proper error values and optionally report them.
tiff: do not overread the source buffer

At least 2 bytes from the source are read every loop.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
faxcompr: K&R formatting cosmetics
faxcompr: return meaningful errors

And optionally forward them to the caller instead of concealing them.

Unify err and ret in a single variable.