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>
Tested-by: 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>
Tested-by: Masahiro Tsuji <tuji@atworks.co.jp>
Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>