JSHint happiness
updated the NPM package list and ran grunt tasks to sync with the drag&drop submodule and regenerate the CSS files through LESS
fixed the columnpicker controller and checkbox plugin: removed crash in columnpicker controller and added CSS tweaks to ensure that *column header* content (including INPUT fields such as checkboxes ;-) ) always overlaps the column resize DIV for mouse/touch. Removed lingering antique code that made it in through one of the merges in the columnpicker: onColumnChanged has been removed as its purpose is already served by the (more elaborate) onUpdateColumns event.
- columnpicker fixes / features:

  + feature: Do not show columns (a.k.a. 'protected columns') in the pick list which either:
    - have an empty 'name' field in their column definition (they would show up as a checkbox for 'nothing' anyway)
    - are marked as hidden by having an ID which starts with an underscore, e.g. "_checkbox_selector"

    This fixes the tight coupling with the header checkbox plugin: the code previously only specifically accommodated for that plugin, but then exhibits several bugs anyway,

  + fix: do properly remix these 'protected columns' which are not shown in the checkbox list, with the columns which are actually selected via checkbox.

  + fix: alter the code to always fetch the columns definition list from SlickGrid as usercode MAY have added or otherwise patched the columns definition list, without us receiving an event about it.

    Note that we currently do not cope with the situation where the user *removes* a column from the set in their own code.

  + feature: the `onUpdateColumns` event is augmented with the datasets describing the current complete column list, the visible columns as selected by the checkbox menu list, and a ditto list for the *invisible* columns.

- CheckboxSelectColumn feature: restrict the resizing to min/max widths via the options `minWidth` and `maxWidth` (default min/max range: 26..40px)
- corrected crash in externalCopyManager when the pasted *external content* contains empty lines, thus producing a clippedRange with some entries set to undefined, e.g. clippedRange[0] will be undefined when the pasted data started with an empty line.

- The new code copes with this and (this is a new feature:) replaces any `undefined` value with the value set in the copy manager options: `options.cellValueRepresentingUndefined`

- the events fired by the copy manager now also include the raw external data, if available, via the `rawExternalData` event data member.
- fixes for examples / feature for SlickGrid: Copy/Paste operations: As columns can be moved around and Ranges specify row/column indexes which must be mapped to data *fields*, it is paramount to always obtain the latest columns definition list using the new API `.getColumnsInfo()`

- feature: added `.getColumnsInfo()` API which delivers an object listing both the original columns specification and the generated lookup matrix and columns list as used by the datagrid. This is required info when you have a grid with *nested headers* and wish to know, for example, the list of columns that show data (i.e. the list of 'leaf headers', i.e. the headers which don't have children)

- fix: ensure the HeaderMenu and HeaderButtons are reachable by the mouse by having them sit on top of the column resize DIV; this patch applies the discovered (position:relative + z-index:1) CSS fix/tweak to all relevant LESS files. The matching CSS files have been regenerated via grunt.

- fix: turns out SlickGrid didn't act very nicely in circumstances where the grid-to-be-displayed in still invisible due to a parent-of-a-parent-...etc. higher up the DOM tree being marked as 'display:none'; which results in size measurements producing some unexpected numbers at or near zero (they're all zero, but then there's box/content model fixup code in SlickGrid and jQuery that doesn't expect to start with a zero width merely because an outer DIV is display:none. The curious thing is that the browser's getComputedStyle() delivers 'display:block' instead of 'display:none' so I guess the .getComputerStyles() DOM API doesn't check any deeper than one CSS definition; only jQuery's .is(':visible') produces correct results regarding the visiblity of a node.

  The repeated width calculations have been refactored and augmented to deliver zero (instead of some negative or positive number thanks to box model / context adjustments)

- feature: added the `minHeight` and `maxHeight` options which work together with the `autoSize:true` option value to make SlickGrid fill a given container DIV; the code has been constructed to further restrict the generated grid size following any min-height/max-height values set on the given container DIV.

- fix/tweak: overflow-y now always is set to 'auto'; turns out that the current codebase does not benefit from conditionally setting overflow-y:auto when autoSize is enabled, as the sizing and rendering should not produce a scrollbar anyway, unless the new minHeight/maxHeight options are used to restrict the grid dimensions.

  Added an example which demonstrates the new options and the min-height/max-height CSS checks.

- fix: all examples contained illegal HTML code where the sourcecode display DIV was contained inside an UL. This has now been corrected.

- fix: all examples which contain copy/paste operation handling code now use the new API .getColumnsInfo() to obtain an up-to-date array of columns to help map paste input into the proper columns/cells.

- some misc. fixes to the examples and a few typo fixes in the comments.
fix: declare missing variable.
oops, missed adding the new example for showing the new autoHeight + options.minHeight/maxHeight feature.
height was 24px, not 16px as produced by LESS previously.