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.
Merge pull request #525 from proski/master

Git related patches

Thank you.
I will have to look into the code again soon, because it is not general enough (too tied to thinking about Git only in terms of the Frescobaldi application while it should actually be used for managing LilyPond projects...). I think your improvements will be helpful there too.