Allow fir.box type to be a member of a tuple<> or fir.type<>, in which
case it should be ensured it should be ensured the fir.box member is not
translate to the struct type of a Fortran runtime descriptor, and not a
pointer to it.
FIR type translation was also flattening nested tuple while lowering to LLVM
dialect types. There does not seem to be a deep reason for doing that
and doing it causes issues in fir.coordinate_of generated on such tuple
(a fir.coordinate_of getting tuple<B, C> in tuple<A, tuple<B, C>>
ended-up lowered to an LLVM GEP getting B).