Use a callback for credentials

Instead of making the user choose beforehand, use a callback to let the
user ask a database or human about the credentials.

If desired, a hard-coded value can still be provided via a lambda, e.g.

    (_url, _user, _types) => new UsernamePasswordCredentials() { ... }
Test -> CanResolveConflictsByRemovingFromTheIndex

We're not clearing the conflicts, we're resolving them.  The
difference is that removing from the index means that the items
get moved to the REUC.  "Clearing" or "removing" (in libgit2
terminology, anyway) means that they are removed without being
resolved (or going into the REUC).
Introduce Index.Conflicts.ResolvedConflicts
Introduce Repository.Index.Conflicts.Names