Update README.md
Trigger ColumnsResized event fix

Trigger ColumnsResized event in 'syncColumnCellResize' mode.
Slick.Controls.HeaderGroups added
Init of index.html
Merge branch 'gh-pages' of https://github.com/DarthVictor/SlickGrid into gh-pages
- fix for crash: invalid/uninitialized canvasWidth

- preliminary introduction of getColumnWithFractionFromPosition() API: congruent with getRowWithFractionFromPosition() and meant to augment getVisibleRange() + getRenderedRange() with column indices next to pixel positions: treating columns as first class citizens, just like we do rows.

- fix cleanupRows(): when there's no rows in the cahce any more, the 'pull up' code should flag this situation properly -- similar to what happens when we start by initializing the grid.

- added `invalidateColumns()` and `invalidateColumn()` APIs: as mentioned above: treat columns as rows: both are first class citizens in the grid.

- correct assertions which fired when the grid was loaded with NO DATA
Merge remote-tracking branch 'remotes/DarthVictor/gh-pages' into smooth-scrolling - we use `onColumnsResizing` where @DarthVictor fired another `onColumnsResized` event during the column resize drag op. Regenerated examples' index & tweaked example to match the others.

Conflicts:
	examples/index.html
	slick.grid.js
- cleanup: killed the $headerRowSpacer + $footerRowSpacer DIVs: those serve no purpose anymore (see next few items below)

- now all rows/columns, headers and grid itself, use the same CSS class-based cell dimensioning technique: `.l`+`.r` classes and absolute positioning to position and dimension all grid cells. (Header cells were `float`+`width` based, but that causes trouble when their content is of arbitrary size & shape. It will also throw a serious spanner in the works for future column freezing & pinning if this wasn't changed.

- in case of the headers, because those do not have the vertical scrollbar of the canvas, hence their width is different and thus their `right` position values differ from canvas grid cells, the technique above uses two different classes: `.hl`+`.hr`

- cleaned up & reorganized the headers: their dimension now follows the grid/canvas closely and no more -1000px hack; we do make the header rows slightly wider than the canvas rows so that we can neatly scroll horizontally while there's a vertical scrollbar in the canvas/grid section.

- the logic when to update the columns has been cleaned up; the checks are stronger (see `updateCanvasWidth()`) and the onCanvasWidthChanged event only fires when there's actual change in either the canvas size or the columns total width (which represents the 'virtual' canvas width). The event only fires when the grid has been properly initialized, i.e. it will not fire before you've seen the (new!) onAfterInit event.

- added `onAfterInit` event as the mirror of `onBeforeDestroy`

- nested headers: (KNOWN BROKEN) cleaned up the whole nested & plain headers code: a side effect is that this now enables rendering of colspanning/rowspanning headers without using hacky 'spacers'.

- `updateCanvasWidth()` is now the One Stop Shop for updating the canvas/headers widths following any column width change / setup.

- the 'stylesheet' hack (getAllStylesheets()) has been improved: only the stylesheet generated by *this* slickgrid instance will be fetched (we add an ID to the generated STYLE tag which is in sync with the unique slickgrid container ID (UID) -- as the checks are stronger now, we got rid of the now superfluous 'force' parameters. This also results in less problems when using the grid.