Throw IllegalStateException when calling unsatExplanation to avoid NPE.
If a user calls unsatExplanation() on a SAT problem, or before the solver has run, he will get an NPE.
One should throw an IllegalStateException with an appropriate message instead.