Update _FormSelectWidget to use standard _setStoreAttr setter

Fixes #11676
fix #17542 dijit/form/_AutoCompleterMixin crashes if no store and no srcNodeRef is provided

Added a simple check to make sure the srcNodeRef is set before constructing
a data store from options.

Added doh tests to validate the behavior.
Fix some Calendar layout glitches on "hover" on iOS.

:hover rules on iOS (and android?) are problematic.  In addition to activating 300ms
after touching an element (whereas really they shouldn't activate at all), often the
wrong element gets the effect.  Therefore:

1. Leverage _CssStateMixin for Calendar drop down.  It's already being included for Calendar anyway.
2. Limit the :hover pattern for Calendar days to CalendarLite widget, not Calendar widget

Fixes #17814, refs #12276.
Workaround iOS bug where clicking Menu can focus/click an input/button behind it.
Fixes #17816.
Add aria-labelledby for TreeNode.containerNode, fixes #17705.

Also update test_Tree.html to use aria-labelledby rather than aria-label;
there's no reason to list a tree's label twice.
add textarea to list of elements to allow click native behavior, refs #17816.
Destroyable should forget Promises that are resolved or rejected, refs #17680.
modernize test, refs #9575
fix typo, refs #17680
ObjectStoreModel fixes for asynchronous stores.
Added async tests to Tree_ObjectStoreModel.html, and lots of cleanup too.

Refs #17836, fixes #17837.
make ObjectStoreModel leverage Destroyable, refs #17837
fix typo from 302c1fe542b646a07dfce94172e4a61345768354, refs #17837.
remove completed TODO comment, it's handled by _isParentChildDrop(), refs #7140
Disallow drop onto own parent
unless user is dragging multiple nodes and at least
one of them is *not* being dropped onto its own parent.

In that case, no-op for node(s) being dropped onto their own parent.

Fixes #16692