Updated TimerManager

Modified the removeExpiredTimers method to safely loop over the timerList array when removing timers.  It was possible that some timers marked for removal were remaining in the array due to mutation.