Build the extension before running benchmarks
Reduce the memory requirement of percentile() and median()

Re-use the gauge_map_t buffer when creating an array
of floats to be sorted. This reduces memory usage by
reusing the existing buffer but it means that the map
can't be used after calling gauge_map_percentile(),
hence the copy operations in tests and benchmarks.
Reduce the memory requirements of stddev()

Do two passes of the data rather than loading it all
into memory.
Don't expose the first() and last() aggregates
Update benchmarks