Fix #820: Override CompoundColumns#cell/column to find by original id

Includes added unit tests.
CHANGES.md: Note CompoundColumns column/cell id lookup fix
Fix #867: List: Don't call inherited destroy if useTouchScroll is false
CHANGES.md: Note useTouchScroll: false + destroy fix
Use direct DOM sibling accessors to get previous and next rows to avoid catching parent or child tree nodes in overlaps
Test stores: Make async country store observable to test tree edits
tree: Add unit test for child modification
CHANGES.md: Note tree child modification fix
tree unit test: Uncomment afterEach now that the test is verified
Fix #757: Selection: Listen for both touch and mouse/keyboard events

This revises event listener initialization logic to hook up both touch
and mouse/keyboard event listeners on webkit touch devices.  A flag is
set when a touch event is triggered, to avoid re-triggering Selection
events on emulated mouse events.
ColumnSet: Remove has("touch") conditions for touch+mouse devices
List: Default useTouchScroll false on platforms w/ visible scrollbars

This disables the TouchScroll module's behavior on platforms where
has("touch") reports true, but discrete scrollbars are rendered.

This is an admittedly somewhat loose heuristic, but achieves in
preventing TouchScroll from hindering on platforms that typically
have mouse input available, such as IE and Chrome on hybrid Windows 8
laptop/tablet devices.  These platforms generally do just fine with
native touch scrolling support, as well.

Unfortunately, there is no known foolproof solution to feature-detect
the presence or absence of a mouse.
DnD and util/touch: Tolerate mouse events on touch-supported devices
CHANGES.md: Note fixes for mouse+touch devices
Minor functional test code cleanup