config: remove the refresh function and backend field

We have been refreshing on read and write for a while now, so
git_config_refresh() is at best a no-op, and might just end up wasting
cycles.
remote: accept a repo and name for renaming

Remote objects are not meant to be changed from under the user. We did
this in rename, but only the name and left the refspecs, such that a
save would save the wrong refspecs (and a fetch and anything else would
use the wrong refspecs).

Instead, let's simply take a name and not change any loaded remote from
under the user.
Merge pull request #2646 from libgit2/cmn/remote-rename

remote: accept a repo and name for renaming
Merge pull request #2638 from libgit2/cmn/config-refresh-remove

config: remove the refresh function and backend field