Fix Win32Timer, change the way the clear value is specified for HashMap and add unit tests.

Win32Timer was storing a pointer (id in s_timers) and in the mean time removed and re-added the timer object, causing the pointer to point to the wrong has table entry.