More accurate and clean Timer

Lots of update.
1. Added start/pause/stop/resume functions
2. Separate print function to better handle format and make code clear.
3. Use name instead of random id to remove complexity.
4. m, s, ms format with ticks
5. By default, timer does not start after constructed, to get more
accurate time when multi timers overlaps.