Use bytes.Buffer rather than creating dozens of garbage strings

% go test -test.bench . -test.benchmem
PASS
BenchmarkNewSet   500000              3394 ns/op             201 B/op          4 allocs/op
BenchmarkOldSet   500000              5205 ns/op             297 B/op         14 allocs/op
BenchmarkNewGauge         500000              3734 ns/op             241 B/op          6 allocs/op
BenchmarkOldGauge         500000              5561 ns/op             307 B/op         13 allocs/op