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.
Fix timing handling on Linux
Setup ensure_pinned before marking as RString

This ensures that we see the dmwmb pointer and rstring ptr in sync in
another thread. Otherwise one could have been set while the other was
still not.
Merge remote-tracking branch 'origin/master' into compiler

Conflicts:
	lib/tooling/profiler/profiler_vm.cpp