sheep: count recovered objects with uint64_t

In theory, a number of recovered objects (or their candidate) would be
larger than 2 ^ 32. This patch lets the recovery process use uint64_t
for counting the numbers.

Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>
sheep: enhance STAT_RECOVERY for prividing information of recovery state

Current SD_OP_STAT_RECOVERY only provides an information that
indicates the node is doing recovery or not. For providing more useful
information about progress of recovery, this patch enhances this
request.

The enhanced SD_OP_STAT_RECOVERY returns the information with struct
recovery_state. The struct contains these information:
1. a flag which indicates a sheep process is in progress or not
2. state of recovery. With this information, collie can know which
   phase of progress sheep is in.
3. Number of copied object during a recovery process.
4. Number of entire objects which should be copied during a recovery
   process.

Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>
collie: add a new option --progress to "node recovery" for showing recovery progress

This patch adds a new option --progress (or -P) to the node recovery
subcommand. With this subcommand, users can show a progress of
recovery process.

Example:
$ sudo collie node recovery --progress
 99.7 % [==============================================>] 7047 / 7068

The denominator (7068 in the above case) indicates a number of entire
object which should be checked. The numerator (7047 in the above case)
indicates a number of objects which is already checked or copied.

Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>