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.
Change getCtor() to take array of types (generated from data-dojo-type, data-dojo-mixins), rather than having that logic in instantiate(), refs #14342 !strict.   Extracted from Kitson's patch (CLA on file) on #14591, thanks!
Code reduction and lint fixes, refs #14342 !strict.
Initial check-in of dojo/request. refs #15182 !strict
missing semicolon, refs #13036 !strict
Upgrade DnD code to:
   - use dojo/touch event wrappers rather than accessing "mouse*" events directly
   - add infrastructure for synthetic touchover/touchout events
   - use dojo/on rather than deprecated dojo/_base/connect, except for isCopyKey() which is only available in dojo/_base/connect

DnD is still not working on mobile though for some reason.

Refs #15185 !strict.
Get DnD working on mobile.    Probably there are still some rough edges.  Fixes #15185 !strict.
Remove use of named functions, refs #15179 !strict.

Linting fixes, refs #14615 !strict.
added loader test; refs #14808
Various fixes and unit test updates. refs #15182 !strict
improved timeout in loader to watch plugin requests; added test to demonstrate this plus other, unresolved issues; refs #14990; !strict 
reversed priority of boot params from defaultConfig, userConfig, dojoSniffConfig; added tests; fixes #14810; !strict
try [28360] again since error in commit missed files; fixes #14810; !strict
Fix spelling of cancel*. refs #15182 !strict
Clean up dojo/request/util. refs #15182 !strict
removed requirment for sync loader when including v1.x i18n backcompat; refs #14092; refs #15057; !strict
Rename `dojo/promise/Promise#both()` to `dojo/promise/Promise#always()`. Refs #14615 !strict
Fixes #15186 one more order of ops correction. thanks, neek
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.
improved sniff for dojo xhr factory; fixes #14831; refs #14092; !strict