use high resolution time instead of Date.getTime

- process.hrtime() returns nanoseconds, and is intended for performance measurement
- also, rename Profiler.sinceLastStep to Profiler.lastStep, since it's just a placeholder for the time of the latest step.
store steps so they can be retrieved later
add flag to disable printing to console