odb: Honor the non refreshing capability of a backend
odb: Code beautification
odb: Move the auto refresh logic to the pack backend

Previously, `git_object_read()`, `git_object_read_prefix()` and
`git_object_exists()` were implementing an auto refresh logic. When the
expected object couldn't be found in any backend, a call to
`git_odb_refresh()` was triggered and the lookup was once again performed
against all backends.

This commit removes this auto-refresh logic from the odb layer and pushes
it down into the pack-backend (as it's the only one currently exposing
a `refresh()` endpoint).
Backport @peff's fix for duplicates in sha1_lookup
Merge pull request #1817 from libgit2/ntk/fix/backend/honor_refresh_capabilities

Of backends and refreshers...