Extend test coverage

Test the arguments `-w`, `--dropfirst`, `--droplast`, and a combination of
both. Uses a larger dataset to distinguish from the different cases. Also
includes a test for null values which aren't considered in the averaged
result.
Refactor data manipulation

Make the code more Rubyesque. Should read better, IMO.
Catch empty responses from Graphite

If a metric/query doesn't exist in Graphite then an empty array will be
returned. Previously this resulted in the exception being returned:

    NoMethodError: undefined method `[]' for nil:NilClass

Replace this with a more user friendly error to indicate that no data has
been returned. This isn't quite the same as not having any valid datapoints,
after dropfirst/droplast.
Merge pull request #6 from dcarley/catch_unknown_metrics

Catch unknown metrics