Make library checks more portable

Thanks to Morgan Deters who reported the CVC4 fix.
Support CVC4Solver::reset()

Morgan Deters has kindly helped and pointed out that SmtEngine objects
aren't really intended to be copy-constructed; so we resort to pointers.