git: use pygit2 clone and fetch

Use pygit2 clone and fetch capabilities instead of using Git.
Unfortunately we can't get rid of ``subprocess`` yet as pygit2
doesn't yet support push.
pep8 fixes