CPU Profiler

Reports cpu time in microseconds per line and file.

Pretty happy with how this turned out. Should make it easy to add more profiling modes (allocations, memory usage, gc invocations) by adding members to `snapshot_t`.