[WIP] Refresh the config before creating a new snapshot.

I ran into an issue in GitHub for Mac where we would push a local branch for the first time, then we'd look up the tracking branch and it wouldn't be found. :confused: 

It looks like `git_branch_upstream_name` is using a stale version of the repository's config when it looks up the `branch.*.remote` and `branch.*.merge` config keys and since it can't find them the upstream branch name isn't found.

I think the problem is that `git_repository_config_snapshot` doesn't refresh the config before creating a new snapshot. So I've added a test to exercise that case and then fixed it. :boom::camel:
Might be worth testing/showing that the original snapshot doesn't get the changed value

~~~
cl_git_pass(git_config_get_int32(&tmp, snapshot, "old.value"));
cl_assert_equal_i(5, tmp);
~~~