Change semantics of `polymorphic_epk`

Previously, `polymorphic_epk` was always False for non-relevant etypes;
it was True for every etype with an ancestor for which it was True. Both
facts were seriously inconsistent for UI use. `polymorphic_epk` was set
based on differences in `epk_sig`.

Now `polymorphic_epk` is `True` if and only if a (relevant or
non-relevant) etype has any children with a different `epk_sig_t`.

The new attribute `polymorphic_relevant_epk` has the old semantics of
`polymorphic_epk` because that is needed by the SAS backend to set
unique-ness constraints properly.