Use DI activated options

- Switch to IOptionsAccessor over instance based options
- Introduce ExternalAuthenticationOptions for default SignInAsType
- Update all middlewares to use new pattern
- OptionsModel requires new() Options, so had to rework the AuthenticationOption heirarchy, I was able to preserve similar api via workarounds in the extension methods
Throw if SignInAsAuthenticationType is still null or empty. (Same for Twitter).