- unified mouse / click events extra data objects: pass cell, columnDef and $header node whenever these are available

- fix crash in updateRow when empty row at the end of the list (1 past getDataLength()) is edited. BUG: the edit doesn't create a fresh row yet, but at least the crash is gone. (tested on: examples/example-scroll-during-row-reorder.html)

- unified and DRY abstracted out the code which extracts the column info from the header event data. This is now encoded in getHeaderColumnFromElement().