Timer::stop(), TimerListener::pause/resumeTimer()/onTimerStopped().

Timer
1. Check whether the listener is null since the listener
could have been deleted by someone else.
2. Let Timer stop only once by using a boolean "stopped".
3. When Timer stops, it calls listener->onTimerStopped().

TimerListener
1. Add pauseTimer() and resumeTimer() thus TimerListener
can pause and resume the timer.
2. Check whether timer is null, which is the case if TimerListener
has not been passed to TimerManager::addTimerAndStart().
3. Stop timer when TimerListener is deleted, since the timer
is only listened by this TimerListener.
4. Add onTimerStopped() so subclass can do something when timer
has just stopped. The function is virtual, but not purely
virtual, so subclass can choose to override it or not.