minimal augment of `handleSelectedRangesChanged()`: clip userland specified ranges both left & right + use the standard (fastest) `for (i = ..., len = ..., i < len; i++){...}` idiom
Supports creating the grid with `[]` columns, then using `setColumns()` to fill them in later
alias `headerRow` for backwards compatibility
cellNodesByColumnIdx should always store a raw dom element, not a jquery wrapped one.
Fix updateColumnWidths() so it works with the new method of specifying column widths (l0 r0)
You can change the pinned column at any time using `setOptions`, and the grid reacts appropriately.
Merge pull request #3 from GerHobbelt/SACB-pincushion

minimal augment of `handleSelectedRangesChanged()`: clip userland specif...
new public method `getHeaderEls([idx])` gives you the column header element without querying the dom
New methods: getColumnIndexFromEvent and getColumnFromEvent let consumers interact with slick grid dom without being bound to any classname or DOM structure particulars.
handleHeaderClick, onHeaderContextMenu fixed.
example 4 logs slick grid events as they happen for education and testing. example 5 demonstrates fixed column resizing.
Make absoluteColumnMinWidth a configurable option (that most folks won't need to configure)
Update the pinned canvas size while resizing columns
more specific error messaging for incorrect data view ids
preparing to test and develop grouping in a pinned context
Basic grouping works with and without pinned columns
slick grid example with a working, pinned totals row
simplify grouping example
links to examples
in `handleSelectedRangesChanged`: Using getDataLength() instead, so we support both dataView and static data sets.