Changed timeout handling.

The previous version created lots of timers which in fact created lots of
threads that made debugging in eclipse almost impossible.  Now, we only use one
timer for all checkSat queries and only add and cancel tasks.  This should also
save some time since we don't have to set up and tear down a lot of threads for
timers.