Update to check median instead of last value.

The check by graphite-data.rb was only checking the latest value
returned by the graphite target, which in certain corner cases was
giving false positives for:

```
asPercent(metrics.:::metric_prefix:::.memory.memory.used,sum(metrics.:::metric_prefix:::.memory.memory.*))
asPercent(metrics.:::metric_prefix:::.swap.swap.used,sum(metrics.:::metric_prefix:::.swap.swap.*))
```

... with the percentage returned being '100.0', despite this being very
*extremely* unlikely. Unfortunately, it's a very intermittent problem so
the exact cause of this is unknown.

Returning the median value should avoid this outlier.

This should also make this check more useful for rapidly changing
values, such as CPU checks.
Ensure we are dealing float datapoints

Convert strings to floats, but in a reliable manner.

Float() will only convert things that look like floats, whereas to_f is
a bit more leniant (eg nil.to_f == 0.0; Float(nil) throws an exception).
Add --method option, default to 'median'

Allow specification of a 'check method', so we can pick the right way
to discover the value to check against our thresholds. These vary
depending on the check needed.

* max
* min
* median (set as the default)
* mean
* last
* penultimate (throw away the last value, graphite sometimes corrupts
  it)
Merge branch 'master' into median-not-last
Merge pull request #28 from ministryofjustice/median-not-last

--method option, to use median/mode/last/etc to calculate the value to check against thresholds.
Adjust swap defaults

Now we have swap-out monitoring, we can ease off the swap-free thresholds
Merge branch 'master' into graphite_swap_out