Fix Premature match on branch names

Fixes #4
- added handling of repositories in "initial commit" state
- added handling for branches which do not track a remote branch
- fixed my screw-ups while fixing this

Note: I'm sure there are still edge cases in states like "detached HEAD" etc, further testing needed though. Currently just eyeballing all the things.