Add implementation and loweirng for the extends_type_of
intrinsic.
The standard mentions this: otherwise if the dynamic type of A or MOLD is
extensible, the result is true if and only if the dynamic type of A is an
extension type of the dynamic type of MOLD. Which could be interpreted that
extends_type_of(a, a) could be false since a type is not an extension of
itself. Gfortran result for this is true so the same behavior is applied
here as well.
Depends on D141364