Multithreaded BGZF writer (bgzf_mt): write out compressed data from a worker
thread instead of the main thread. Prevents 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 writing at any one time, modulo a new assert
in bgzf_raw_write.