Expose TagFetchMode property on Remote type and include mechanism to update it.
Fetch should respect the remote's configured tagopt setting unless explicitly specified
Introduce TreeDefinition.From(Commit)
Introduce repo.Refs.ReachableFrom()