add --show-commit option for seaf-fsck

Except add --show-commit option, I also did follow modification:
(1) When fsck fetch master commit failed, it will try to fetch latest available commit from local disk.
(2) When update branch to latest available commit, using seaf_branch_manager_add_branch interface not seaf_branch_manager_update_branch, it will keep db consistent when the master branch row miss or commit object corrupted.
The correct logic should be:
- --fix-commit and --dry-run should be mutually exclusive, that is, can't be used together
- if a repo is corrupted and fix_commit is FALSE, this repo should be skipped
- if a repo is corrupted and fix_commit is TRUE, you should first find and reset the repo's head commit to the last valid one. Then you can process the repo as a normal repo.