[Constant] ConstantStruct/Array should not lower poison to undef
This is a (late) follow-up patch of 8871a4b4 and
c95f3989 to make ConstantStruct::get/ConstantArray::getImpl
correctly return PoisonValue if all elements are poison.
This was found while discussing about the elements of a vector-typed UndefValue (D99853)