Fix jslint warnings.

Change-Id: I36c1c0d83bc904072720eb209fdc2fd20d36e526
Support a new 'datacube' json input format.

This is a more efficient transport for multidimensional data with lots of
repeats.  The value from a given "column" in one dimension can be provided
only once, and then another "column" alongside it can be a vector of values.
So for example,

   [ {a:5, [{b:6}, {b:7}, {b:8}]},
     {a:1, [null]} ]
expands to
   headers = ['a', 'b']
   data = [ [5, 6],
            [5, 7],
            [5, 8],
            [1, null] ]

Change-Id: I757947064e14b31be1ba2bde71458045af7fdc5c
heatgrid: expand to at least a certain minimum y size.

Otherwise heatgrids without many rows just look silly, compressed all at the
top like that.

Change-Id: I371775bb2150703fc6d8b56a7874aeb47f661ee3