Improve TimerManager

Instead of adding timers into a vector and sorting them every time a timer is added, use a multimap