added work by @ojotoxy: cherrypick from ojotoxy-master branch

- added events for column reordering: "onColumnsStartReorder", "onColumnsReordering" ("onColumnsReordered" already existed)

- added isInitialized() API

- renamed event onColumnsResizeStart -> onColumnsStartResize

- add column resize DOUBLEclick functionality: the code attempts to fit the column to the max required width of all items in the column

- small fix in ensureCellNodesInRowsCache()

- add event `onRowsRendered`

- add event `onCellChange` which is fired when cell edit is finished (commitCurrentEdit())

- added master-detail plugin

- added reorder-columns example which showcases the new reorder events
extra editors and formatters; cherrypicked from meetmauro clone