ColumnResizer: improve performance of first resize

With ColumnResizer, when you resize a column for the first time in a grid,
the grid would be resized once for each column and then again for the column
you resized.  Now the grid resizes only once.
CHANGES.md: Note improved first-resize performance w/ ColumnResizer
selector: Add Intern unit and functional tests

Includes a utility module with a method for detecting shift+click support,
since it doesn't seem to work through WD with certain versions of IE and FF.
Tests involving shift+click are no-ops in these browsers.
selector: unit and functional test cleanup

* Add test suites to all.js and functional.js
* Add proper teardown and fix formatting in unit test
* Test allowSelect rather than disabled, since the two are redundant and
  disabled will eventually be discontinued
* Remove unnecessary waitFor* calls
* Pass functions to remote.execute calls, not strings
* Make isShiftClickSupported return a boolean for easier use
* Refactor control flow to only call isShiftClickSupported once
* Remove questionable/unsupported case of allowSelectAll + single selection
* Remove unused debugging code
* Chain calls where it doesn't hinder readability
Move functional test utilities into functional folder
CompoundColumns test page: Add grid and form to test combinations

Allows testing with ColumnSet, ColumnHider, and/or ColumnResizer.

Also did some general formatting cleanup.
ColumnHider: break out column-showing logic to _showColumn
ColumnHider: Call resize after applying IE8 workaround
ColumnResizer: Suppress focus outline on resizer node
CompoundColumns: Add logic to support ColumnHider and ColumnResizer

Note that this currently requires that ColumnHider and/or ColumnResizer be
mixed in *before* CompoundColumns, since CompoundColumns will extend
methods from the other two.  This is in contrast to ColumnSet, which needs
to be mixed in *after* CompoundColumns.

Also includes some general cleanup.
Fix a problem with combining ColumnSet, ColumnResizer and CompoundColumns.
CHANGES.md: Note CompoundColumns interoperability w/ Hider and Resizer
Add editor unit and functional tests

Note that destruction tests involving editor have been moved out of the
createDestroy suite and into the plugins/editor suite.
editor unit and functional test cleanup

* Add editor functional tests to functional.js
* Fix failing tests on FF Mac by detecting End key behavior
* Rearrange functional tests to allow more combinations with less repetition
* Reformat / reindent remote calls
* Fix autoSave test
* Revise focus preservation test to test for observed changes
* Test both always-on and editOn editor focus preservation
* Clean out unneeded waits and variables
* Simplify and clean up test pages and switch functional test to tdd
* Raise max-duration and timeouts where necessary

Switching to tdd enables avoiding bugs when testing multiple platforms
concurrently, by storing variables within the scope of the suite.
editor functional tests: Move test page out of subdirectory
selector functional tests: Convert to TDD style

This allows sharing variables within the suite scope, avoiding issues when
testing multiple platforms concurrently.
selector functional tests: Formatting cleanup
Keyboard functional tests: switch to tdd; formatting cleanup
Keyboard functional tests: Fix failures when running locally

Also remove store references from simple List/Grid instances
Fixes #840: fixed a defect in the observer function in List causing the second item added to the list to be added after the preload node.