sheep: push dirty bits correctly for successive FLUSH req

This will fix a bug that 'qemu-img convert' fail to convert images intact with
default unsafe mode.

Signed-off-by: Liu Yuan <namei.unix@gmail.com>
Reviewed-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
sheep: get vdi bitmap from all the nodes

Currently, we assume that the existing nodes has the complete vdi
bitmap and reading from one of them is enough.  However, this
assumption is wrong if the joining nodes have a vdi object which is
not in the running cluster.  For example,

 1. Sheepdog is running with one node A

 2. Two node B and C joins Sheepdog at the same time, and the node B
    has a vdi object which is not in the node A.

 3. If C calls get_vdi_from() against A before A does it against B, C
    cannot have the vdi object in its vdi bitmap.

The safe and simple approach to fix this problem is:

 - The newly joined node calls get_vdi_from() against all the existing
   nodes.
 - The existing node calls get_vdi_from() only against the newly
   joined node.

We can optimize it, but I think there is no simple way to do it.  I
left it as a TODO in the source code.

This patch also updates tests/functional/052.out.  The newly joined
node can have a complete vdi bitmap even before sheepdog starts up, so
sheep can run object recovery correctly when we run 'collie cluster
recover force'.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>
sheep: run object recovery even if sheep was stopped cleanly

Currently, if the administrator run 'collie cluster shutdown' or power
failure (all the nodes stop with the same epoch information) happens
while object recovery is ongoing, sheepdog cannot restart the recovery
after all the sheeps come back.  We should kick recovery even if we
don't need to increment epoch.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>