Add ScopedLock on Timer destructor

Currently, every time you read or modify the `activeTimers` set, you use a ScopedLock on `TimerThread::lock` -- except in `~Timer()`, where it should also be done.  Otherwise, I think one may run into trouble, when timers are created/destroyed by different threads.

Obviously, this only affects debug builds, where the `activeTimers` set exists.