Add pred attribute to UnevaluatedOnFree

This makes it more convenient to apply a different expression to the
predicate, which is the typical use-case.
Add ExactlyOneArg to newhandlers

This is useful for facts like, "if exactly one term in a multiplication is
irrational, the multiplication is irrational."