Show an error message if git is missing, fixes #3297

This should reduce the support requests regarding this topic.

Note: `archiveGitRemote` in `cache.js` is also calling git but is currently not exposed and is just called after `checkGitDir` and `cloneGitRemote` which made checks for git.