libgit2: implement clone command

Show download and checkout progress, but can't cancel.
git protocol tested.

Signed-off-by: Frank Li <lznuaa@gmail.com>
libgit2_diff: merge diff workdir to index and index to tree to speed up difference

Update clone command to sync with libgit2

Signed-off-by: Frank Li <lznuaa@gmail.com>
CreateRepoDlg: fix crash in debug version

Signed-off-by: Frank Li <lznuaa@gmail.com>
libgit2: use libgit to create git repository

Signed-off-by: Frank Li <lznuaa@gmail.com>
Libgit2: implement fetch by libgit2

but return fail when update ref

Signed-off-by: Frank Li <lznuaa@gmail.com>
Fix UserPassword segment fault at init

Signed-off-by: Frank Li <lznuaa@gmail.com>
LibGit2: Add push function but push nothing but UserPassword Dialog launched

Signed-off-by: Frank Li <lznuaa@gmail.com>
Libgit2: check result when call add refspec

Signed-off-by: Frank Li <lznuaa@gmail.com>
Libgit2: use CGitProgressDlg to Clone

But libgit2 can't auto checkout

Signed-off-by: Frank Li <lznuaa@gmail.com>
libgit2: Add more option to clone

Depth and SVN have not supported

Signed-off-by: Frank Li <lznuaa@gmail.com>
libgit2: show down animate when clone

Signed-off-by: Frank Li <lznuaa@gmail.com>
libgit2: checkout file after clone and get union code convert when report libgit2 failure

Signed-off-by: Frank Li <lznuaa@gmail.com>
Fix TortoiseGitShell build fail

Signed-off-by: Frank Li <lznuaa@gmail.com>