Link existing accounts to credentials when signing in via OAuth

When you sign in using OAuth with an email address that already exists, you get a confusing and unhelpful error message. (https://gitlab.com/gitlab-org/gitlab-ce/issues/25802)

Proposal

Signing in using OAuth with an email address that already exists should link the OAuth provider and the existing account. (Suggested by @DouweM here

Note from @brodock: We should ask for existing credentials before linking OAuth accounts.

We should ask for existing credentials on the first OAuth attempt and before making the link.

Edited by Jeremy Watson (ex-GitLab)