Pulling from remote repositories is more efficient now.

solves #598
Refactored GitRepository::GetDiff

Lazy creation of diff to increase the performance.
solves #598 and #609