Various DOH robot updates:

   - Don't include dijit code into page with robot test code; dijit should only be loaded in the content iframe.
   - Fix double scrollbar on tests (on IE8) caused by overflow:visible setting on <html>
   - Prefer dojo/domReady! to dojo/ready, in order to support other AMD loaders.   However, dojo/ready is still needed for the outer frame to detect when the inner frame (with the content) has completed initializing.
   - Since robot depends on dojo, use domClass.add() and remove() to add dohRobot class to <html> node, to avoid getting a space character in the class string.
   
 Fixes #15865, refs #15616 on trunk/ !strict.
For dojo core and dijit, use require(["dojo/domReady!"], cb) rather than ready(cb) so that dojo code can run against other dojo loaders.

Exceptions:
     - robot.initRobot() related code that checks when page inside of iframe has finished initializing
     - dijit-legacy-requires back-compat code for synchronous mode, which load modules that weren't explicitly required (ex: how dijit/_WidgetBase loads dojo/_base/manager)
     - dojo/parser's parseOnLoad: true support
     - dojo-config-require sync mode operation

This change depends on dojo/domReady! executing it's callbacks in the order they were registered.  To ensure that client-defined callback code executes after the callbacks inside of dojo/dijit, client code should either continue using dojo/ready, or use a nested require(["dojo/domReady!"], ...) inside of the original require that loads the modules:

{{{
require([...], function(...){
         require(["dojo/domReady!"], ...)
}
}}}

Further, when the client code needs to run the parser and then run another block of code, it should be done like:

{{{
require([..., "dojo/parser"], function(..., parser){
     parser.parse().then(...);
}
}}}

Viewport.js needed a setTimeout() to workaround bug #15866.   It should probably be removed when that bug is fixed.

Refs #15616, #15866 !strict.   Changes on trunk/.
Use domReady() as a function rather than as a plugin, so dependencies can be fully resolved on the server.

This required a few changes to dojo/ready and dojo/domReady though:

   - for dojo/domReady, needed to make sure that tasks were executed in the order they were registered, including tasks registered after the DOMContentLoaded event but before the queue of tasks has been completed
   - delay executing dojo/ready callbacks until all tasks registered via domReady() complete, in order to insure that all the dojo initialization code runs before user defined code
   
 Refs #15616 !strict
Fixes #15880.  Update "he" translations.
refs #15182: specify a meaningful string when creating RequestTimeoutError

object passed into Error constructor will be converted to string "[object Object]", which is not very helpful

!strict
Properly call RequestTimeoutError. refs #15182 !strict
Fix bug collecting <script>'s that appear after normal child nodes.   Issue was with unwinding the stack (ie, moving from a child to the parent).   Fixes #15871 on trunk/ !strict.
If there's an DOMNode with id="on", don't get confused into thinking that window.on() is a function you can call.      Fixes #15888, refs #15871 on trunk !strict.
Fix for multiversion support for parser, etc.   Use local require() method provided by define(), not global one.   Also addresses AMD-loader compatibility, since not all AMD loaders are guaranteed to have a global require() method.   Fixes #15539 on trunk !strict.
refs #13101, clean-up docs
dojo.byId -> dom.byId in io/iframe.js; fixes #15940 on trunk !strict
Fixes #15892 !strict, using lang.delegate to change evt.target. also back ported to 1.8.x branch
Replace dojo.deprecated with kernel.deprecated, fixes #15955 on trunk !strict
Fixes #15892 !strict, create new event obj by mixin rather than lang.delegate for changing evt.target, also back ported to 1.8.x branch
Fix position getting set on form in DOM. refs #15939 !strict
fix parentConstrainedMoveable class declaration for backward compat (missed dojo prefix). fixes #16035
consume module config after loader fully initialized; add test; fix whitespace; refs #15952; !strict
Improve handling of progback results

* Don't resolve the returned promise
* If the progback returns a value, emit that value on the returned promise as a progress update, allowing for easier update propagation

Fixes #15996, !strict
Check ioArgs when adding dead scripts. refs #15890 !strict
Added back-compat properties to errors. refs #16023 !strict