gitfs: fix new branch detection (GitPython)
gitfs: fix new branch detection (GitPython)

The existing method of change detection only caught changes to existing
branches. New branches and deleted branches weren't detected as changes.

It turns out that the return value of a fetch with no changes is an
empty list, so simply checking if the return value is non-empty catches
instances where there is a new branch, as well as instances where an
existing branch was updated.

Additionally, the existence of stale refs after a fetch is now used to
determine if a local branch no longer exists on the remote repository.
These stale refs are now deleted to keep the local checkout clean.

saltstack/salt,saltstack/salt,saltstack/salt,saltstack/salt,saltstack/salt