Fixed steps in autoSizeColumns() that detects infinite loops for shrink and grow operations.  In some cases the prevTotal exceeded total (for grow) and was less than total (for shrink).  The existing check simply checked if the 2 values were equal, but not if prevTotal had gone beyond the proper bounds, resulting in an infinite loop.
Merge pull request #818 from mjonas87/master

Improved infinite loop avoidance in autoSizeColumns()
Implement lazy totals calculation in the DataView.

Add a ‘lazyTotalsCalculation’ grouping info option (default = false)
that delays the totals calculation until the item is accessed via
getItem(index).  This can dramatically improve the perceived
performance of the DataView operations on very large datasets.
Optimize DataView group collapse/expand.
Fix a typo
introduced click event handler on range overlay: this allows user code to act in an application-specific way when the selection overlay is clicked.
synchronized with my other dev branches to simplify merging:

- all examples now have the same HTML5 structure

- all referenced libraries are updated to their latest state

- some source code formatting

- CSS stylesheets synced
Merge remote-tracking branch 'remotes/mleibman-original/master' into ojotoxy-master

Conflicts:
	slick.dataview.js
	slick.grid.js
- move common code up for the cell editor invocation: each branch calls makeActiveCellNormal()

- list all used options in the defaults section at the top
updated comment/description of the slickgrid options
Make sure options.editCommandHandler is active for both existing cell edits and when editing cells in the 'new row' at the bottom of the grid. Also unify the information sent to the related event (onCellChange / onAddNewRow). Also ensure that the event handler can deduce whether onCellChange was invoked for an edit commit or undo operation (by comparing the actually set value e.setValue versus e.serializedValue and e.prevSerializedValue). At the same time we fix the previously occurring double firing of onCellChange for default editors and now provide a separate .notify() function in the editor object so that custom editors can invoke this function to ensure the onCellChange event can be easily triggered from the custom editor code.
- fixed bug: makeActiveCellNormal() should come AFTER the editor instance has been invoked (as makeActiveCellNormal() deletes the cell's editor instance! Turns out it was previously correct for all cases except when the custom editor handler was specified: see commit 5b63c96a22b8a6ef5ba4a6ac27c4d105db17895c)

- added an example to test the various Editors and Formatters (and fixed the bugs/crashes in several editors)

- split the HTML+CSS collection code from appendCellHtml() into mkCellHtml() as we allow advanced Formatters to not only produce innerHTML for the cell but also augment its CSS classes and ditto styles. Now we re-render all of these rigorously so that BackgroundFormatter can actually work its magic on the entire cell instead of the (margin-ed) innerHTML <span> only, for example)

- added the library files required by the Formatters / Editors (multiselect & spectrum)