work: remove short thread

This is a preparation for a dynamic worker thread pool.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
logger: use LWP for worker idx

We cannot use a sequence number for the thread index any more.  This
patch uses LWP for it instead.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
work: remove unused codes

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
work: glow the number of worker threads dynamically

If a new thread is requested when there is no free one, the work queue
doubles the number of threads in the pool.

The maximum number of threads is passed as an argument of
init_workqueue.  If you pass -1 for it, the number of threads will
grow unlimitedly.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
work: shrink the number of worker threads dynamically

If more than half of threads are not used more than 1 second, the work
queue reduces the current number of threads.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>