more logging in GRSpec
rewrite finite_domain2ints to cache additionally the bool/int-only versions of clauses

these result after substitution and were re-computed for every to_gr1c call, because the temporary spec0 in finite_domain2ints and tmp in to_gr1c is not stored and has to be recreated each time, effectively canceling the benefit of caching.

The new implementation is also much cleaner and readable.
Note that the domain check (at least one element, all elements must be str) has been integrated in to_gr1c. No need for creating a temporary spec0.
optimize the method consuming the most cumtime during AST flattening