Fix an OPNF bug that was uncovered by speedChess.

There was a non-deterministic bug causing the AssignmentIterator to
sometimes try to fill in a variable using a function that wasn't
really a function (because the variable was in the conjunct
multiple times).
Remove duplicates from VariableConstrainer output.
Merge pull request #58 from ggp-org/opnf-fix

OPNF fix