Follows Resource pattern (IdentityErrorDescriber.StringName, or
FormatStringName(arg1, arg2)
Also cleaned up optional services, by allowing null in constructor
SignInStatus -> SignInFailure and introduced SignInResult to make
SignInManager APIs consistent with IdentityResult (but no strings needed
for SignIn)
Fixes: #86, #176, #287 and #177
- Add ProviderDisplayName
- AddLogin continues to take UserLoginInfo
- Remove/Find now only take loginProvider/providerKey
- Refactor unit tests to share a base class