Clean up sign in manager

- Add SignInOptions
- Also fix SecurityStampValidator issue resolving against wrong service
collection
UseUserNameAsEmail support

When set:
- FindByEmail will use UserName
- SetEmail will set the user name and email
- GetEmail will return user name
- This setting does not impact the Get/Set/FindUserName apis