tiff: Drop err argument from *_OR_FAIL macros

for consistency with other modules.
Avoid repeatedly setting TIFF directory

TIFFSetDirectory() unconditionally reads the entire directory from disk.
Avoid calling it when we're already on the correct directory.
Drop unnecessary tiff_set_dir() in paint_region functions

tiff_read_tile() and tiff_read_tile_data() both set the directory, and
none of the grid tile callbacks read TIFF fields.
aperio: Don't choke on zero-length JPEG tiles

It turns out that both JPEG and JP2K slides can have zero-length tiles.
In the JPEG case, libtiff was printing e.g.:

    TIFFFillTile: 0: Invalid tile byte count, tile 200.

and openslide_get_error() was returning:

    TIFFRGBAImageGet failed

Return transparent pixels instead.
Avoid fcntl() in _openslide_fopen() if we can atomically set CLOEXEC

The fcntl() calls were redundant on modern glibc.  Compile them to avoid
bitrot, but don't execute them.