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() { ... }

/cc @nulltoken @Therzok
Code is boring. This is why braces were invented in the first place. They're like a pause. They deserve their own line.

However, I have a dream. I have a dream that one day on the red hills of Georgia, the code and the braces will be able to sit down together at the table of brotherhood.

Each little carriage returns is a tiny step toward this.