improved performance stats API

I decided to polish up some work I started last Friday and submit as PR.

The motivation was to make the performance stats accumulate data and tally at the end of the frame rather than treat each elapsed time as its own measurement.  This allows us to add up similar measurements (for example: "avatar/simulate/skeleton") for multiple instances and then display the total stat spent in that context.  In other words: the total time spent for all avatars rather than the average time for each avatar.

While I was making changes I decided to modify how the stat's "name context" is computed.  Each PerformanceTimerRecord instance now automatically accumulates name context from earlier instances which simplifies the API and also makes it possible to accumulate stats across multiple paths.  For example:  /idle/update/doSomething and /init/doSomething.

Finally, I with the new "name context" calculation I noticed that some contexts would be computed only once (specifically during init) and then never be updated again, thereby cluttering the list of stats.  I added a stat expiry to clean up these old measurements.
This is an unspoken rule created by one of our developers who really hates horizontal lines in files. I don't mind it so much, but I know he does. He's sitting across from you.

I think we should consider revisiting the one class per file rule... because we are breaking it in a couple places.