Fixes #41; Fixed bucketing for the Heat Map

The old implementation used a string based map that would cause issues with certain ranges and numbers of buckets. The new implementation does the following:

* Faster bucketing - uses simple integer math to perform discrete bucketing
* Explicit boundary conditions - out-of-range data is explicitly bounded
* Fixes rendering errors - total order on buckets ensures rendering is consistent