Transforms authentication information to a new type, for use in combiners.
If transformers are available for A, B, and C, the combined authentication can use simple
type D instead of something like (Option[A], Option[B], Option[C]).
(Option[A], Option[B], Option[C])
Implementation note: This is a new trait instead of a type alias to prevent accidental
implicit use. It's sealed to control how partial is defined to make future refactorings easier
(maybe it should be a complete lifted function, etc.).