Improve guard code for when underlay may already be destroyed, refs #10525 !strict.
"char" is a reserved word, so use a different variable name, refs #15153 !strict
Convert robot*.js files to baseless AMD, and remove document.write() usage.
 
 To get util/doh/robot.js to play nice with AMD (no document.write(), and no reference to dojo global), I introduced a dependency to dojo which theoretically wasn't needed before.   Perhaps it can be removed in the future.   If isolation is desired, the dojo-dependent code should be moved to dojo/robot.js, not put if if(){...} blocks.
 
 Also removed the document.write() usage in dojo/robotx.js to create a console div.   On IE6/IE7, we are already getting a firebug-lite console, so just using that.   (This might be dependent on having isDebug:true in the data-dojo-config of the test file though.)
 
 Theoretically fixes #14929 !strict.
Fixes #15141.  Add onLoadDeferred to Select so that InlineEditBox waits for the value to be set.  Added various automated tests. !strict
Fixes #14703.  Change TextBox's onInput to be called only once for most keyboard events.  Printable keys generate keypress and others keydown.  Added automated test.
Get DnD working on mobile.    Probably there are still some rough edges.  Fixes #15185 !strict.
Support dijit/Tree DnD on mobile, and support touch.over, touch.out, touch.enter, and touch.leave synthetic events from dojo/touch module.   Also fixed touch.move to behave like mousemove.

I refactored the touch.over/touch.out code to work by firing synthetic events when it that the user drags over a different node than before.   

About touch.move: Previously, on(node, touch.move, func) on mobile would only trigger func if the user started their drag inside of the specified node.   This did not match the behavior of on(node, touch.move, fun) on desktop, which was to fire events whenever the mouse was moved over the specified node, regardless of where the mouse movement started.   DnD at least was depending on the onmousemove-like behavior.

Refs #14185 !strict.
Re-enable _CssStateMixin to track focus events on widget subnodes since legacy themes (tundra, nihilo, soria) are using that feature for !ComboButton's in Toolbars on IE.

Refs #14568, fixes #15196 !strict.
Fixes #15200.  Selected was separated from Hover in 1.7 but the legacy themes need an extra CSS rule.
Use standard has.add()/has() for feature detection wraping.   Refs #12375 !strict.
Use standard has.add()/has() for feature detection wrapping.    Also, use domConstruct.destroy() to get behavior needed for IE.   Refs #12823 !strict.
Removing dependency on win.doc global-ish variable:

- Each widget has a document determined at creation time, usually implied by srcNodeRef.ownerDocument but also specifiable explicitly.    Save that in this.ownerDocument, and for convenience also record the associated <body> node in this.ownerDocumentBody.    Maybe this.ownerDocument should be called this.doc instead,  but I thought that might be confusing with Editor.document.

- In widgets, use this.ownerDocument instead of win.doc, and this.ownerDocumentBody  instead of win.body().

- Since domConstruct.create() doesn't take a document parameter, either pass in a refNode (which implies the document), or avoid using domConstruct.create().   Could also have wrapped the domConstruct.create() calls with win.withDoc(), or used domConstruct.toDom().

- Miscellaneous fixes to widgets.

- Make dojo/_base/window::body() take an optional document parameter.

Editor not yet converted.

Refs #15216 !strict.
Use winUtils.get() to get window from document.  Refs #15216 !strict.
Add missing (optional) document parameter for various DOM methods, and update code (mainly dijit code) to pass in the document to those methods, fixes #15229 !strict.
A few fixes around win.doc references:

1. Standardize on this._sCall() interface to access selection API.   Also looked at passing window parameter to each selection method, or creating a Selection class that's attached to a window on creation... but just did the simple thing for now.   OTOH the range API takes a window parameter.

2. remove unneeded win.withGlobal(), win.withDoc() calls

3. misc cleanup

Refs #15216 !strict.
Move hccss to dojo/core (leaving back-compat stub in dijit) and make dojo/dnd dependency explicit.   Fixes #15230 !strict.
Fixes #15256.  Check for disabled and readOnly before searching on key input.  Added automated test. !strict