Fix #2134 Horizontal scroll bar covers up last row. 

now WHEN_NEEDED really acts like ALWAYS when the scrollbar is shown.
So the viewport is different, and the sudden scrollbar widths and
heights are set and used in calculations for the various widths and
heights
fixes for #2346 #2303
regression fix for: #2357 scrolling with large amount of columns,columns
disappear after sort 

scrollTop can now be undefined/null then that value should not be used
for calculating if this is a scroll that doesn't have to update
anything.
Issue #2382 - Disable resizing of expandable buttons column
Merge branch 'master' of https://github.com/angular-ui/ng-grid into 2382

Conflicts:
	src/features/expandable/js/expandable.js
Merge pull request #2383 from MattAtBT/2382

Issue #2382 - Disable resizing of expandable buttons column
fix for #2311 and other issues in grid editors
Merge pull request #2398 from jpuri/mater_input

fix for #2311 and other issues in grid editors
Merge pull request #2351 from jpuri/master

fixes for #2346 #2303
Merge pull request #2379 from Servoy/row_inserts_before_current_fix

regression fix for: #2357 scrolling with large amount of columns,columns disappear after sort
Merge pull request #2361 from Servoy/scrollbar_when_needed_fixes

Fix #2134 Horizontal scroll bar covers up last row.
Fix #1572 (saveState): create saveState feature
Merge pull request #2402 from PaulL1/1572_save_state

Fix #1572 (saveState): create saveState feature
Fix #2286 (sort): fixes and doco for suppress remove sort
Merge pull request #2404 from PaulL1/2286_sorting_doco

Fix #2286 (sort): fixes and doco for suppress remove sort
Fix #2391 (enh exporter): auto-download CSV, removes need for  and some options
Merge pull request #2405 from PaulL1/2391_csv_download

Fix #2391 (enh exporter): auto-download CSV, removes need for  and some ...
Fix #2397 (tutorial): add cascading edit dropdown example
Merge pull request #2408 from PaulL1/2397_edit_dropdowns

Fix #2397 (tutorial): add cascading edit dropdown example
fix #2393 (doco): update to the way you decorate gridOptions