By the current API description of `git_odb_exists()`, if the refresh fails here, I think we should return 0 (i.e. object not found) instead of returning the negative error code (which could be -1 that would incorrectly suggest that the object exists).

This behavior of `git_odb_exists()` is a little odd, I think - I would be okay if we want to have a discussion about changing it - but maybe that should be separate from this PR.