Only get memory for clause cache if multi-threading is going to be used
Better error printing
Make sure that user cannot call set_num_threads() too late
Better speed on small multi-threaded instances

The cache will be used up in the same thread creation moment as the
solve()
More use of const