Fixup absorption algorithm

First, restrict absorption to only normal form (CNF/DNF) expressions.
Second, the previous implementation used the "equivalent" expression to
test for term equivalency. Proving formal equivalence isn't really
necessary when you're just dealing with terms of literals. Besides, I
haven't even implemented a good equivalence algorithm yet.
Move gray code tests into test module