Normalize predicates before plan building

To plan predicate selection well, predicates
are now rewritten to normalized to conjunctive
normal form before planning starts.

Another difference is that And and Or expressions
are replaced with Ands and Ors so these can be
worked with as collections instead of trees.