Calculate some gc stats
The first stat is a gauge showing the number of times the garbage collector has
run since the last sample.

The second stat records timings for all gcs that have happened since the last
sample, accounting for the fact that we may have missed some. Go keeps a
circular buffer of the last 256 gc pauses, so if there have been more than 256
pauses in the sample we'll miss some data. Probably not a big deal.
Add a few more memory stats
Actually log the gauge value, make names consistent with NumGC
Merge branch 'morememstats' into gcstats