This patch updates lowering to produce the correct fir.class types for
various polymorphic and unlimited polymoprhic entities cases. This is only the
lowering. Some TODOs have been added to the CodeGen part to avoid errors since
this part still need to be updated as well.
The fir.class<*> representation for unlimited polymorphic entities mentioned in
the document has been updated to fir.class<none> to avoid useless work in pretty
parse/printer.
This patch is part of the implementation of the poltymorphic
entities.
https://github.com/llvm/llvm-project/blob/main/flang/docs/PolymorphicEntities.md
Depends on D134957
Will fir.embox -> fir.class will always be equivalent to fir.embox -> fir.box -> fir.convert -> fir.class, or will there be special cases where creating a fir.class via fir.embox would could not be implemented as a statically typed fir.box converted to a fir.class (I guess in order to be passed ? to a polymorphic dummy).
Doesn't Rebox_Op needs the same update ?