ENH: Changed how CountdownTimer uses reset()

Currently if a CountdownTimer is created:

cdt = CountdownTimer(5)

, after the cdt has /expired/ ( cdt.getTime() < 0.0 ), then calling:

cdt.reset()

changes the cdt internals so the cdt.getTime() < 0.0 is immediately
true. In other words the cdt is still /expired/ after a reset().

This ENH changes that functionality such that when cdt.reset() is
called, it resets the cdt to

current_time+last_countdown_duration_set

So given the above example:

cdt.reset()

now results is cdt.getTime() == 5.0 right after the reset.

If you provide a duration to reset:

cdt.reset(10)

the cdt.getTime() == 10.0 right after the reset.

Using the cdt.add() method behaves as it previously did.