Multithreaded BGZF writer (bgzf_mt): write out compressed data from a worker
thread instead of the main thread.

This may prevent stalling the main thread on I/O in some circumstances. This
change is potentially risky because it introduces use of hwrite from
different threads (the main thread and one worker thread). It does however
work out that only one thread is doing so at any one time, modulo a new
assert in bgzf_raw_write.