Profiler logger

Changes to the profiler so we can log the report in a different format. Not the ideal implementation, but it gets the job done. We could consider refactoring the Profiler to be more flexible with the way it outputs its report. For now, I just call delegates at the time that the report sections are printed.