Walk through a function type, gathering all RPITITs and installing a
NormalizesTo(Projection(RPITIT) -> Opaque(RPITIT)) predicate into the
predicates list. This allows us to observe that an RPITIT projects to
its corresponding opaque within the body of a default-body trait method.
Returns the type of the last field of a struct (βthe constraintβ) which must implement the
sizedness trait for the whole ADT to be considered to implement that sizedness trait.
def_id is assumed to be the AdtDef of a struct and will panic otherwise.