Avoid iterating on maps
Avoid iterating on maps

Speed up `InsertTargeted*` functions by at least 2x by avoiding
iterating on maps.

Before and after benchmark comparison:

    benchmark                                 old ns/op     new ns/op     delta
    BenchmarkInsertTargeted-4                 177           73.2          -58.64%
    BenchmarkInsertTargetedSmallEpsilon-4     322           94.6          -70.62%
    BenchmarkInsertBiased-4                   75.8          74.7          -1.45%
    BenchmarkInsertBiasedSmallEpsilon-4       563           571           +1.42%
    BenchmarkQuery-4                          7426          1118          -84.94%
    BenchmarkQuerySmallEpsilon-4              80390         12535         -84.41%

    benchmark                     old allocs     new allocs     delta
    BenchmarkInsertTargeted-4     0              0              +0.00%

    benchmark                     old bytes     new bytes     delta
    BenchmarkInsertTargeted-4     0             0             +0.00%

I considered changing the function signature and requiring users to pass
a slice to avoid the conversion, but I think that would inconvenience
users of this library unnecessarily.

Found by profiling the CPU time spent calculating quantiles in the
Prometheus Go client library.

beorn7/perks