tests/functional: add a new test for vdi check with the condition nr_zones < inode->nr_copies

The newly added test checks that "dog vdi check" can check and recover
lost inode objects well under the condition of nr_zones <
inode->nr_copies. Previous "dog vdi check" rises panic in such a case.

Reviewed-by: Marcin Mirosław <marcin@mejor.pl>
Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>

Conflicts:
	tests/functional/group

Conflicts were resolved by Hitoshi Mitake. In addition, the output of
the test is modified for adopting difference of vnode numbers (128 ->
64).

Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
dog: caliculate a number of zones

New "dog vdi check" requires a number of zones. This patch lets dog
caliculate a number of zones when a subcommand has a flag
CMD_NEED_NODELIST.

Reported-by: Marcin Mirosław <marcin@mejor.pl>
Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>

Conflicts:
	dog/dog.c
	dog/dog.h

Conflicts were resolved by Hitoshi Mitake.
Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
dog: use a minimum number of copies and zones for vdi checking

Current sheepdog allows the condition of a number of zones < a number
of copies. But "dog vdi check" cannot handle the case well because it
tries to create copies of lost/corrupted objects based on
inode->nr_copies.

This patch lets "dog vdi check" create a minimum number of copies and
zones.

Reported-by: Marcin Mirosław <marcin@mejor.pl>
Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>

Conflicts:
	dog/vdi.c