Refactor: introduce reusable MfaWebApplicationServiceFactory

And put ALL the common mfa arg extractor logic into
AbstractMultiFactorAuthenticationArgumentExtractor using
template method design pattern.