Improve extensibility of middleware by introducing interfaces for AuthenticationOptions

Resolve https://github.com/aspnet/Security/issues/35