helm: fix branch existence check

`git_branch_exists` properly returns `0` if the branch does not exist.
It also learnt to not render any output.

Previously, `git_branch_exists` tried to be consistent with EXIT status,
reaturning '0' if the branch exists, and `1` if not. It wasn't consistent
with its counterpart `git_repo_exists`.

Additionally, the call to git `git-ls-remote` still wrote to stdin, which
broke things when checking what the function returned. It is now redirected
to dev/null