Reimplement PQ22DLocalFiniteElement with a type-safe union
PQ22DLocalFiniteElement is the prototypical use-case for the recently introduced LocalFiniteElementVariant: A container that can hold one object from a fixed list of types. Therefore, switch the implementation to using LocalFiniteElementVariant. The code becomes a bit shorter, and should be a bit faster, too.