[client] Don't delete file from repo if failed to check it out.
[client] Don't auto sync repos that are not checked out.
[client] Fix two GC related bugs.

* Don't index worktree when GC is running;
* Save remote head id for normal download tasks too.
[CLI] Don't use RPC request pool.
[client] Improve GC.

* Don't start other components before GC is finished;
* Fix block lose problem when syncing with existing folder.
Handle corrupted commit object correctly.
[server] Don't gc blocks if some repos are corrupted.
[client] Correct display of sync status.

Should display "auto sync is turned off" when auto-sync is disabled.
[client] Support syncing symlink.
Make sure #include "common.h" at the first line of code.