Use libgit2 with threads

Signed-off-by: Sven Strickroth <email@cs-ware.de>
Add plink support to libgit2

Signed-off-by: Sven Strickroth <email@cs-ware.de>
Update libgit2

Signed-off-by: Sven Strickroth <email@cs-ware.de>
Copy&paste url parser from libgit2 code

Until https://github.com/libgit2/libgit2/pull/2492 gets merged or forever ;)

Signed-off-by: Sven Strickroth <email@cs-ware.de>
Use GIT_SSH tool configured in TortoiseGit and pass correct environment

Signed-off-by: Sven Strickroth <email@cs-ware.de>
Also support ssh.exe which needs the DETACHED_PROCESS flag

Signed-off-by: Sven Strickroth <email@cs-ware.de>
Search ssh executable on the PATH configured in TortoiseGit

This is needed because the PATH configured in TortoiseGit might differ from the PATH environment variable set in the system and TortoiseGitProc.exe.

Signed-off-by: Sven Strickroth <email@cs-ware.de>
Refactored: Deduplicate code for searching files in folders of %PATH%

Signed-off-by: Sven Strickroth <email@cs-ware.de>