use MonoTime/Duration instead of clock() for higher precision when profiling the GC

also fixes building with PRINTF_TO_FILE
Am I right that this fixes a bug in the profile display (namely `pauseTime` was incorrect)? Is there a reason to have the time saved to a variable, or is it just because that's how it was before?