LOGIC-91: `predc` constraint entailment issues

The problem is that cgoal calls `runnable?`, runs the constraint, then
calls `relevant?`, however when a constraint is already in the store
we call `relevant?` *first*, because of other constraints may have
done the work for us.

Added `irelevant?` predicate. `cgoal` and the `run-constraint` now use
this. Remove all `IRelevant` implementations that simply return
`true`.

The all different constraint will still exhibit the issue as
FDConstraint implements `IRelevant` for delegation purporses. We
should probably eliminate `FDConstraint` and implement some kind of
templating facility to avoid the boilerplate.