Specialize sample heap to reduce allocations.

Here's the benchcmp output. I'm not sure why some of the timings changed
as most of those benchmarks have nothing to do with this, I suspect some
other factors at play.

benchmark                       old ns/op     new ns/op     delta
BenchmarkCounter                10.5          10.4          -0.95%
BenchmarkDebugGCStats           1541          1506          -2.27%
BenchmarkEWMA                   79.9          88.1          +10.26%
BenchmarkGuageFloat64           64.0          63.1          -1.41%
BenchmarkGuage                  10.4          11.1          +6.73%
BenchmarkHistogram              115           127           +10.43%
BenchmarkMeter                  361           409           +13.30%
BenchmarkMetrics                204413        405262        +98.26%
BenchmarkRegistry               686           1205          +75.66%
BenchmarkRuntimeMemStats        3246          4280          +31.85%
BenchmarkCompute1000            2319          2497          +7.68%
BenchmarkCompute1000000         2386431       3085427       +29.29%
BenchmarkCopy1000               3975          4268          +7.37%
BenchmarkCopy1000000            2385647       2382330       -0.14%
BenchmarkExpDecaySample257      733           449           -38.74%
BenchmarkExpDecaySample514      787           426           -45.87%
BenchmarkExpDecaySample1028     1104          460           -58.33%
BenchmarkUniformSample257       157           120           -23.57%
BenchmarkUniformSample514       139           116           -16.55%
BenchmarkUniformSample1028      137           111           -18.98%
BenchmarkTimer                  1371          950           -30.71%

benchmark                       old allocs     new allocs     delta
BenchmarkCounter                0              0              +0.00%
BenchmarkDebugGCStats           1              0              -100.00%
BenchmarkEWMA                   0              0              +0.00%
BenchmarkGuageFloat64           0              0              +0.00%
BenchmarkGuage                  0              0              +0.00%
BenchmarkHistogram              0              0              +0.00%
BenchmarkMeter                  0              0              +0.00%
BenchmarkMetrics                260            0              -100.00%
BenchmarkRegistry               2              2              +0.00%
BenchmarkRuntimeMemStats        1              0              -100.00%
BenchmarkCompute1000            0              0              +0.00%
BenchmarkCompute1000000         0              0              +0.00%
BenchmarkCopy1000               1              1              +0.00%
BenchmarkCopy1000000            1              1              +0.00%
BenchmarkExpDecaySample257      1              0              -100.00%
BenchmarkExpDecaySample514      1              0              -100.00%
BenchmarkExpDecaySample1028     1              0              -100.00%
BenchmarkUniformSample257       0              0              +0.00%
BenchmarkUniformSample514       0              0              +0.00%
BenchmarkUniformSample1028      0              0              +0.00%
BenchmarkTimer                  1              0              -100.00%

benchmark                       old bytes     new bytes     delta
BenchmarkCounter                0             0             +0.00%
BenchmarkDebugGCStats           31            0             -100.00%
BenchmarkEWMA                   0             0             +0.00%
BenchmarkGuageFloat64           0             0             +0.00%
BenchmarkGuage                  0             0             +0.00%
BenchmarkHistogram              0             0             +0.00%
BenchmarkMeter                  0             0             +0.00%
BenchmarkMetrics                4162          1             -99.98%
BenchmarkRegistry               340           340           +0.00%
BenchmarkRuntimeMemStats        31            0             -100.00%
BenchmarkCompute1000            0             0             +0.00%
BenchmarkCompute1000000         0             0             +0.00%
BenchmarkCopy1000               8192          8192          +0.00%
BenchmarkCopy1000000            8003599       8003599       +0.00%
BenchmarkExpDecaySample257      32            0             -100.00%
BenchmarkExpDecaySample514      32            0             -100.00%
BenchmarkExpDecaySample1028     31            0             -100.00%
BenchmarkUniformSample257       0             0             +0.00%
BenchmarkUniformSample514       0             0             +0.00%
BenchmarkUniformSample1028      0             0             +0.00%
BenchmarkTimer                  31            0             -100.00%
Added comment about the source of the heap implementation.
Merge remote-tracking branch 'kisielk/master'