Import GitError from gitrepo

The original code fails, as git.GitError is unknown.
Check more carefully that the branch is remote

Make sure 'remote' and 'merge' keys are present, otherwise the branch
should be considered local. Without such check, the caller would get
KeyError. STGit branches are affected.
Raise GitError for all errors in gitrepo.py
Report Git problems only for GitError

Catching everything if overbroad, it includes all possible errors in
gitrepo.py, even syntax errors.
Simplify warning about missing git, fix language and syntax

Provide the error message from the GitError exception, it may be useful.

Don't state categorically that Git is not installed, it may be some other
issue.