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
BenchmarkInsertTargeted                      297          198  -33.33%
BenchmarkInsertTargetedSmallEpsilon         1029          619  -39.84%
BenchmarkInsertBiased                        325          182  -44.00%
BenchmarkInsertBiasedSmallEpsilon           2642          883  -66.58%
BenchmarkQuery                               700          326  -53.43%
BenchmarkQuerySmallEpsilon                 44309         8965  -79.77%
quantile: Speed up queries by avoiding creating functions

benchmark                              old ns/op    new ns/op    delta
BenchmarkInsertTargeted                      198          190   -4.04%
BenchmarkInsertTargetedSmallEpsilon          619          601   -2.91%
BenchmarkInsertBiased                        182          174   -4.40%
BenchmarkInsertBiasedSmallEpsilon            883          922   +4.42%
BenchmarkQuery                               326          117  -64.11%
BenchmarkQuerySmallEpsilon                  8965         8616   -3.89%
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
BenchmarkInsertTargeted                      190          173   -8.95%
BenchmarkInsertTargetedSmallEpsilon          601          445  -25.96%
BenchmarkInsertBiased                        174          174   +0.00%
BenchmarkInsertBiasedSmallEpsilon            922          923   +0.11%
BenchmarkQuery                               117          110   -5.98%
BenchmarkQuerySmallEpsilon                  8616         8609   -0.08%