Cleanup for SignInManager

Add cancellation tokens/async suffixes
Add SignInOptions(Will enable CanSignIn in a seperate PR)
Passing in an IEnumerable looks pretty ugly :(  I think I prefer option #4: we just do nothing and require developers to create their own Noop/null user name normalizer to change the behavior of the normalizer.  It seems like a very uncommon scenario.  

For unit tests at least, just nulling out the property is nice, but I can switch this to a null test normalizer instead.