Support gathering "top" percentile statistics

Adds support for collecting statistics on top percentiles, instead of
the default bottom percentiles. You specify a top percentile by
using a negative number - so -10 will collect the top 10% of data. It
will emit: mean_top10, lower_top10, and sum_top10.

Using a negative number may seem hacky, but it's convenient and there
is a precedent - referencing an array from the end in some languages
can be done with negative indexes.
Added median calculation to timer_data

Added median calculation to timer_data and associated test cases
Changed test case to ensure sorting

Changed the test data in timers_multiple_times_even so make sure the
metrics are sorted before getting the median value. If the data was not
sorted, the median value would be 300 instead of 250.
Merge pull request #277 from dynmeth/master

Added median calculation to timer_data
Merge pull request #200 from zwily/upper_percentiles

Support gathering "top" percentile statistics