Fix #7459 -- allow parallel timers of the same name.

Fix #7459.

Keep track of the measurements of the same name started in parallel: assign them different tracking ids, but report them under the same name. All the measurements are now `PerfMeasurement` objects. Also, code cleanup.

CC: @redmunds, @peterflynn -- please take a look if this change is a good idea.
"but all open timers must have a unique name" ==> this is no longer accurate, right?