(PUP-4551) Do not generalize struct key types
This commit ensures that String types that represents keys in a
Struct type are excluded from generalization. The reason for this
is that such generalization would remove the value that the String
represents and thus, the name of the member.