fix cut-and-paste error in doc, refs #16770 !strict
 Move _WidgetsInTemplateMixin tests from _AttachMixin.html to _WidgetsInTemplateMixin.html.   Also removing a _TemplatedMixin test that seems redundant with tests already in _TemplatedMixin.html.   Refs #16576.
Put touch click normalization in dojo/touch, rather than in dijit/a11yclick and various mobile modules.   Unlike the old dijit/a11yclick code, the new code works by squelching the real click event, and instead always generating a synthetic click event.   Limited to nodes that have a dojoClick property set, or an ancestor with the dojoClick property set.  Patch from Eric Durocher (IBM, CCLA), fixes #15878 !strict.

Some dijit widgets like dijit/Tree and dijit/!TitlePane are currently manually listening for click events and keyboard events; they need to be updated to set the dojoClick property on their nodes instead.
Fix _WidgetsInTemplateMixin to not parse widgets inside of this.containerNode (except if this.searchContainerNode is set to true).   Refs #16576 !strict.
[30523] accidentally broke _earlyTemplatedStartup, put it back, refs #14591 !strict
widgetsInTemplate flag not necessary since extending _WidgetsInTemplateMixin, refs #12275 !strict.
use _WidgetBase rather than _Widget in tests, refs #16585
remove lingering reference to dojo/ready, refs #15616
remove unused dependencies and streamline a11yclick code, refs #15878 !strict
avoid exception when subclass has no focus method, fixes #16816 on trunk !strict
Fix test failure on chrome when "emulate touch events" is turned on.   The mouseup event has to bubble because _HasDropDown sets a mouseup listener on the document.  Refs #16473.
remove calls to deprecated this.disconnect() method, refs #16585 !strict
IE gives exceptions in console if you try to delete an expando property that doesn't exist, refs #16576 !strict.
Don't assume that the focus manager is loaded or dojo.subscribe is defined in the iframe.   For AMD tests they may not be.   Plus fixing a few references to the dojo global.  Refs #14279 !strict.
Add missing  dependency, refs #14279 !strict.
Access dijit/tests/helpers methods through AMD, refs #14279.
For dijit/tests/helpers::onFocus(), if focus changes multiple times during the specified delay, return the latest focus to the callback.    Fixes a problem in the cancel test in Dialog_mouse.html: due to [23488], focus first goes to the close icon and then goes back to the button.  Perhaps the close icon should only get tabIndex=-1 when there are no focusable elements in the dialog?   For now, just changing the dijit/tests/helpers::onFocus() method.  Refs #8285 !strict.
Update dijit/a11yclick to handle keyboard equivalent of ctrl-click, shift-click, etc.   Fixes #16822 !strict.
Make _CssStateMixin use dojo/touch events rather than "touchstart" and "touchend" so that  (in particular the active state) will work on Surface.   Fixes #16823.

Also add new press and release synthetic events to dijit/a11yclick, representing either mousedown/mouseup, touchstart/touchend, or keydown/keyup corresponding to a click event.  Use new dijit/a11yclick events in _CssStateMixin to provide visual feedback during keyboard "clicks".    For non-IE platforms this moves the listener from the capturing phase to the bubbling phase, which seems to be working OK (especially considering that IE's worked this way from the beginning), but there might be some stopPropagation() calls somewhere the need to be removed.  Fixes #8709 !strict.

This is also in preparation to convert Tree to use dijit/a11yclick.  Refs #16819.
Make Tree  leverage dijit/a11yclick, which indirectly make openOnClick work for keyboard "click", fixes #16819 !strict.   Also makes Tree more responsive on mobile, refs #15878.

Builds on work from [30806] and [30807].