Replaces !173 (closed).
ThresholdedDiurnalTemperatureRange index function and
DifferenceThresholdMixin mixin class to deal with differences (in temperature).
When converting a temperature difference from e.g. Celsius to Kelvin, or Celsius to Fahrenheit, it's not enough to use
convert_units on the difference value (as noted in #195 (closed)). The idea in
DifferenceThresholdMixin is to convert both the difference value and the zero of the original unit, and then create the difference in the new unit using both converted values. E.g. difference in Celsius of 10 = (10 - 0) gives a difference in Kelvin of (283.15 - 273.15) = 10, or a difference in Fahrenheit of (50 - 32) = 18. I think this should work as long as there is a linear relationship between the two units.