Non-existent branches or remotes (in Git::Raw::Branch) should return undef

Currently if a branch or remote doesn't exists, we're treating it as an error. Instead, if ```GIT_ENOTFOUND``` is returned, we should be returning ```undef``` (not ```die```).