Update `Remote#fetch` internals

This updates the code behind `Remote#fetch` to make use of the changes that were added to libgit2 in https://github.com/libgit2/libgit2/pull/2462.

This brings opportunistic ref updates into Rugged and removes a bunch of code that is no longer necessary.