Properly ignore hclose() in bgzf_[d]open functions

Introducing an otherwise-unused variable merely trades one compiler
warning for another ("variable 'ret' set but not used").

Because here we're unwinding after an error from bgzf_read_init(),
it's correct to just discard errors from hclose().  I had hoped that
"(void) hclose(fpr)" would suffice, but (1) that defeats -Wunused-value
but not -Wunused-result, and (2) we should preserve errno.

Also fix the bgzf_close() change to set BGZF_ERR_IO on hwrite() failure.

Note that this is not about keeping the compiler happy.  These compiler
warnings indicate places in the code where we need to be careful to
propagate I/O failures to the user correctly.  Suppressing the warnings
without carefully considering the error handling is not an improvement
in general.  Recall that the diagnostics can be temporarily suppressed
locally with -Wno-unused-result (but please don't commit that).