Start tool id's at 1 instead of 0
Remove unused methods from profiler
Extract thread timing logic out into util function
Use monotonic increasing timer for timing

This is better since it is not affected by things such as an NTP time
sync etc.