Deallocate satsolver once core becomes `Open`
The satsolver is reatined and only updated with new clauses for every
state that is generated out of a core. Once the core becomes Open (as
opposed to expandable), the solver is no longer needed.
This patch makes the solver a `Solver option` and gets it deallocated
once no longer needed and resets the hashtable (makes it empty and zero
size) to save memory. This saves about 60% memory usage on some extreme
cases (e.g. exp_unsat from the CTL Benchmark set)