reset all attributes in taut/2 so that eliminated nodes do not appear in residual goals

Example:

   %?- taut(card([0,1,2,3], [A,B,C]), T).
   %@ T = 1,
   %@ sat(A=:=A),
   %@ sat(B=:=B),
   %@ sat(C=:=C).

I also found a test case for erroneous rebuild_hashes/1 in sat_bdd/2:

   :- use_module(clpb).

   sat(_)  --> [].
   sat(X*Y) --> [_], sat(X), sat(Y).
   sat(X+Y) --> [_], sat(X), sat(Y).
   sat(X#Y) --> [_], sat(X), sat(Y).

   eqs([], _).
   eqs(_, []).
   eqs([V|Vs], [A|As]) :- ( true ; sat(V =:= A) ), eqs(Vs, As).

   run(N) :-
           length(Ls, N),
           portray_clause(N),
           phrase(sat(Sat1), Ls),
           sat(Sat1),
           phrase(sat(Sat2), Ls),
           sat(Sat2),
           term_variables(Sat1, Vs1),
           term_variables(Sat2, Vs2),
           eqs(Vs1, Vs2),
           sat(Sat1 + Sat2),
           false.

   run :- run(_).

Example:

   %?- run.
   %@ 0.
   %@ 1.
   %@ 2.
   %@ ERROR: Domain error: `reduced_ites' expected, found `[_G6392-ite(_G6400,_G6687,_G6645),_G6645-ite(_G6543,_G6613,0),_G6613-ite(_G6585,_G6442,0),_G6442-ite(_G6426,_G6470,_G6460),_G6460-ite(_G6468,_G6470,0),_G6470-ite(_G6500,1,0),_G6687-ite(_G6585,_G6442,0)],[ite(_G6400,_G6687,_G6645),ite(_G6543,_G6613,0),ite(_G6585,_G6442,0),ite(_G6426,_G6470,_G6460),ite(_G6468,_G6470,0),ite(_G6500,1,0),ite(_G6585,_G6442,0)],[ite(_G6400,_G6687,_G6645),ite(_G6543,_G6613,0),ite(_G6585,_G6442,0),ite(_G6500,1,0),ite(_G6426,_G6470,_G6460),ite(_G6468,_G6470,0)]'