When we define a derived type that extends another derived type, we can then
create a structure constructor that contains values for the fields of both the
child type and its parent. The compiler's internal representation of that
value contained the name of the parent type where a component name would
normally appear. This caused an assert during contant folding.
I fixed this by changing the function "CreateComponent()" in
lib/Semantics/expression.cpp to no longer include type names in values of type
"evaluate::Component".
I also added the test Evaluate/folding12.f90 to exercise the affected code.