logger: detect death of its parent process in a correct manner

init process doesn't always be a parent of logger process even sheep
process dies. It depends on execution environment. This patch
implements a correct way of detecting death of sheep process in logger
process.

Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
lib: add an interface for registering workqueue for libsheepdog

purge_directory() of libsheepdog can call bunch of unlink(2), so it
can cause long request blocking because sheep process calls the
function in its main thread. For avoiding such a problem, this patch
add a new interface for registering workqueue used in util.c of
libsheepdog and let sheep use it.

Cc: Philip Crotwell <crotwell@seis.sc.edu>
Cc: Masahiro Tsuji <tuji@atworks.co.jp>
Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
lib: call rmdir(2) and unlink(2) in worker threads during purging directory

purge_directory() can cause amount of disk I/O because of rmdir(2)
and unlink(2). Because they can slow down main thread significantly,
it should be done in worker threads for avoiding long request
blocking.

Cc: Philip Crotwell <crotwell@seis.sc.edu>
Cc: Masahiro Tsuji <tuji@atworks.co.jp>
Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>