quantile: Add a range of benchmarks including queries
quantile: Replace container/list with a slice

Better data locality trumps asymptotic behavior in this case.

benchmark                               old ns/op     new ns/op     delta
BenchmarkQuerySmallEpsilon              44491         6782          -84.76%
BenchmarkInsertBiasedSmallEpsilon       2641          871           -67.02%
BenchmarkQuery                          691           306           -55.72%
BenchmarkInsertBiased                   324           177           -45.37%
BenchmarkInsertTargetedSmallEpsilon     1016          616           -39.37%
BenchmarkInsertTargeted                 294           191           -35.03%
quantile: Speed up queries by avoiding creating closures

benchmark                               old ns/op     new ns/op     delta
BenchmarkQuery                          306           105           -65.69%
BenchmarkInsertBiasedSmallEpsilon       871           833           -4.36%
BenchmarkQuerySmallEpsilon              6782          6599          -2.70%
BenchmarkInsertTargeted                 191           188           -1.57%
BenchmarkInsertTargetedSmallEpsilon     616           611           -0.81%
BenchmarkInsertBiased                   177           176           -0.56%
quantile: Use an if instead of math.Min

This significantly speeds up targeted streams when epsilon is small
because the invariant is called a lot.

benchmark                               old ns/op     new ns/op     delta
BenchmarkInsertTargetedSmallEpsilon     611           442           -27.66%
BenchmarkInsertTargeted                 188           171           -9.04%
BenchmarkInsertBiasedSmallEpsilon       833           914           +9.72%
BenchmarkQuery                          105           97.5          -7.14%
BenchmarkInsertBiased                   176           172           -2.27%
BenchmarkQuerySmallEpsilon              6599          6500          -1.50%