use association tables for faster lookup in intersection of automata

Example, previously:

   ?- time(satisfiable(X > 1_000_000_000 /\ Y > 100*X)).
   % 28,128,987 inferences, 4.654 CPU in 6.294 seconds (74% CPU, 6043773 Lips)
   true.

Now:

   ?- time(satisfiable(X > 1_000_000_000 /\ Y > 100*X)).
   % 17,483,013 inferences, 2.734 CPU in 3.661 seconds (75% CPU, 6394831 Lips)
   true.