Set real_type of MultiTypeBlockVector
Summary
The MultiTypeBlockVector already defines its field_type conditionally as common-type over all field-types of its components. If no such common-type exists, the field_type is defined as Std::nonesuch. In this case, the real_type shouldn't simply be defines as using real_type = typename FieldTraits<field_type>::real_type, since then the FieldTraits be potentially illformed or by default the same as Std::nonesuch. While there might not be a common field_type it could still be defined a common real_type.
This MR fixes this in MultiTypeBlockVector and correspondingly in MultiTypeBlockMatrix by defining field_type and real_type independently.
Edited by Simon Praetorius