Teach Remote to Update its TagFetchmode

This PR is to expose a convenient method to update the TagFetchMode configuration of a remote. The update mechanism follows the pattern set in `BranchUpdater`.


As part of this work, I noticed that LibGit2Sharp does not respect the `tagopt` configuration setting for a remote, and always defaulted to 'auto'. The second commit fixes this behavior (and relies on the first commit to enable testing).