Add ProviderDisplayName for logins

Open question is whether we should make this an optional argument in the constructor for the public api container class (UserLoginInfo).  Don't really need it for RemoveLogin, but its needed for GetLogins and when Adding.
Actually this is not far enough, this is currently dead code since we don't have social logins for templates/samples and I didn't get around to writing the unit test that would have caught this yet (I'll update PR with the fix and test).  Two issues here: this should be passing ProviderKey not DisplayName, and this ExternalLogin API should be taking provider key/ login provider as well.