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

Fix #7459.

Keep track of the measurements of the same name: 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.