Add request timing output

This tracks requests and times how long it takes for the server to
respond. We store that based on the chosen hash key, so you can see
latencies like you'd normally see requests/second.

The latency calculations are imperfect. Instead of storing possibly
infinite data, we keep an array of 100 samples and randomly update them.
For popular queries, this will give us accurate enough data.