Better with-handlers support in TR

Checks consistency between predicates and handlers in `with-handlers` clauses.
If the predicate isn't a predicate, TR won't let it run so I don't think it actually matters (and `Univ` would widen the overall result unnecessarily I think?).