Add headerCssClass to column options
RowSelectionModel:selectActiveRow is broken

slick.grid.js:setActiveCellInternal() used to call

    trigger(self.onActiveCellChanged, getActiveCell());

but now it calls

    trigger(self.onActiveCellChanged, {activeCell: getActiveCell(),prevActiveCell: prevActiveCell,editMode:opt_editMode,}, e);

which means the data sent to slick.rowselectionmodel.js:handleActiveCellChange() has changed from

    Object {row: 4, cell: 4, grid: SlickGrid}

to

    Object {activeCell: Object, prevActiveCell: null, editMode: false, grid: SlickGrid}


slick.grid.js:setActiveCellInternal() is manually adding add a "active-row" CSS class to the cell's parent (i.e. the row), but the row is never actually selected in the RowSelectionModel. This patch fixes that.
the plugins and examples don't really ask slickgrid about its editorLock instance but assume the default (global editorlock) instead: fix them to always obtain the relevant editorLock instance from the slickgrid instance itself.
UTF8 everyone and some JSCS/JSHint happiness all around.
add redo to the undo example.
planned examples to test slickgrid features
augmenting the slickgrid autotooltip plugin to make it more powerful, including options.getTooltip custom function to show a user-defined, customized tooltip for any grid cell or grid header cell.
Also update the autotooltip code to produce a sensible tooltip, with ellipsis when it's too long, for both grid cells and grid header cells.
Cleanup and extend the Slick Event object to mimic the default DOM event by providing the preventDefault() and isDefaultPrevented() APIs.

Also added the isHandled() shortcut API to reduce the amount of code when you simply wish to know if any event handler signaled preventDefault, stopPropagation or stopImmediatePropagation.
using the new, extended Slick.Event API
- using the new augmented Slick.Event API

- always use the same (class-based) column number decoding logic.

- refactor the keyDown handler, also moving the try/catch browser hack into a separate function for better code JIT optimization

- setActiveCellInternal() internals change: the new onActiveCellChanging EVENT now enables user code to *abort* the setActiveCell action, e.g. when you're clicking on the grid cells to 'pick' them from another UI part of your webpage and therefo do not wish them to receive focus and/or open up the clicked cell editor.

- added experimental onFocusIn and onFocusOut events which fire when the slckgrid receives/looses focus. User handlers can call any of the event.preventDefault / event.stopPropagation / event.stopImmediatePropagation APIs to signal slickgrid that the event has been completely processed by the user code and thus the default slickgrid behaviour is not applied (which is to commit the currently pending cell edit)

- added experimental onFocusSet EVENT which is invoked when the internal setFocus() function is invoked.

- fix the updateColumnHeader() API when title and.or tooltip are UNDEFINED: then the existing ones should be used! (previous code would nuke the header cell content when this happened.)

- events: do NOT include the original=source event as an 'e' attribute to the event data; this oiginal source event is passed through to the user event handler directly.

- EVENT onColumnsResized now always contains an adjustedColumns array as an attribute of its EventData, listing the column(s) indexes which have been resized.

- bit of JSHint/JSCS happiness

- fix crashes in drag handlers, etc. when the grid is rerendered while a drag commences (can happen for complex/heavy grids or large grids).

- to simplify and deduplicate user code, the getCellFromEvent() call now accepts the DOM reference to any element *inside* the cell (or, as before, the reference to the grid cell DIV itself).

- ditto for getRowFromEvent()

- editor.execute/undo/notify APIs: the editorInfo object (accessible via this) now include a reference to the current grid instance via the this.grid member: this enables user code to easily use generic exec/undo code which can handle the actions from multiple grids.

- exported the internal absBox() function as a new API: similar to jQuery .offset() but provides more info and guaranteed to match its numbers with getGridPosition() and getActiveCellPosition()
adding an assert, just for curiosity. I know this one will fire; it's just that I wonder if the code is really correct or just a very blunt hack (I think it's the latter, but these asserts help me debug the callstack)
adding preliminary `bower` config
Merge remote-tracking branch 'remotes/beardedlinuxgeek/patch-2' into k0stya-rowspan
Merge remote-tracking branch 'remotes/beardedlinuxgeek/patch-1' into k0stya-rowspan