Properly support nested timers

When a nested timer is called, the currently running is stopped. When
the nested timer stops, the timer "above" is resumed. This works
recursively with multiple levels of nesting.

This will support for example SQL queries run in template processing,
which can happen since Django ResultSets are lazily queried.
Instrument Django template render