Fix #705: Selection: reset range if start node was unrendered

When OnDemandList destroys far-off nodes, it can cause problems for
Selection and CellSelection if a long range selection is made after the
original start of the range was removed from the DOM.  This fix prevents
that case from throwing an error, though the range will still be reset.
CHANGES.md: Note long selection range error fix
Fix #714: Improve handling of observable notifications at page boundaries

These changes introduce logic to create and maintain overlap of
pages of query results, in order to counteract problems where
dojo/store/Observable drops items at page boundaries.
Fix improperly-initialized grids in unit tests
CHANGES.md: Note observable item dropping fix
CHANGES.md: Note resolution of issue showing items added at end

This was resolved during the work on overlapping observable results.
More robust check before eliminating observers

Check to ensure all rows have really been removed before eliminating
observers. Also provide better tolerance of missing rows.
Fix #383: Make ColumnSet and CompoundColumns compatible with each other

This also includes a few CSS tweaks to improve the layout of the grid header
when using ColumnSet and CompoundColumns together.

Note that ColumnSet remains agnostic to any details specific to CompoundColumns.
Keyboard: Prevent errors attempting to refocus after structure change
CHANGES.md: Note CompoundColumns + ColumnSet interop
Fix a timing problem which caused an error in unit tests in IE < 9.

This sets _started to false when a list or grid is destroyed, so that
any delayed resize handlers no longer attempt to resize when the grid's
DOM is no longer relevant.
CHANGES.md: Note change to _started behavior in List#destroy