Heatmap filtering

#333 Heads up, we had to create a special range filter to disambiguate a range filter from a two-dimensional filter. In the future, it'd be great to convert all of the filters into objects instead of the ambiguous numbers and arrays.