Issue title: Suggestion for can't login with local credentials if registered with social account
 Issue body: If you use AspNetIdentity as UserStore then the following file is added to your project: [IdentityServer3.AspNetIdentity.cs](https://github.com/IdentityServer/IdentityServer3.Samples/blob/master/source/AspNetIdentity/WebHost/App_Packages/IdentityServer3.AspNetIdentity/IdentityServer3.AspNetIdentity.cs)

If you then login with in example Facebook, a new user is created with a newly generated `Guid` UserName in line [302](https://github.com/IdentityServer/IdentityServer3.Samples/blob/master/source/AspNetIdentity/WebHost/App_Packages/IdentityServer3.AspNetIdentity/IdentityServer3.AspNetIdentity.cs#L302).
If you add a password to your created account and want to login with that account (by email and password), the account isn't found. This is because the user is search by only the UserName in line [185](https://github.com/IdentityServer/IdentityServer3.Samples/blob/master/source/AspNetIdentity/WebHost/App_Packages/IdentityServer3.AspNetIdentity/IdentityServer3.AspNetIdentity.cs#L185).

I think that there should be a setting for determine the authentication method like `UserManager.FindByIdAsync`, `FindByEmailAsync` or `FindByNameAsync`.

For now, I changed line 185 to `FindByEmailAsync` and also generated a `Guid` as UserName for registering new users with the register form.
 Comments: 
 Comment 0: Yes, that's why we just put the .cs in the nuegt -- so you can change it as you see fit. There is a certain amount of responsibility and decisions you must make when you're managing identities.
 Comment 1: No problem. It was more a suggestion and kind of documentation because I couldn't find any reason why this was implemented like this. Thanks @brockallen. I will close the issue.
{'source': 'GithubIssues', 'repo_name_with_owner': 'IdentityServer/IdentityServer3', 'issue_id': 196659231, 'repo_stars': 1861.0}