Grid: fixed overflow

because the rows and cols was int16_t, and location was encoded as the
row and col of the origin of the world coords, we would have overflow
issues for grids far from origin.

solved by:
- storing origin as coords of first cell
- using int for rows and cols

Also removed duplicated code, and added a test
bag_of_tricks/image_view_window

moved from ladybug_proc and improved the code. zoom not working yet.
image viewer: zoom working

but slow... Maybe I'm recomputing the image to display too much
image viewer: fixed pan and zoom
image viewer: added function to get the mouse coordinates in image frame
minor code cleanup in package timer
created heatmap in stdr_lib