bs_sheepdog.c: partial update of inode object for optimizing COW

Current bs_sheepdog.c updates whole inode object (metadata of
sheepdog) when COW occurs. This patch reduces the traffic of update.

Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
bs_sheepdog.c: use multithread for scsi command submission

Current bs_sheepdog.c uses only one thread per logical unit. This
patch let it use nr_iothreads as a number of threads per logical
unit by per thread connection and rwlocking inode object. This change
is effective in the case of reading one logical unit by many clients.

Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
bs_sheepdog.c: support reconnection for updating sheepdog

Current bs_sheepdog.c rises error when connection for sheep daemon is
closed. This is not suitable when administrators want to update
sheepdog. This patch implements reconnection functionality in
bs_sheepdog.c for this purpose.

Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>