Non-existent branch should return undef

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