refs #16072. Fixes some missing error reporting (with Mark blessing). !strict
When dojo/on compares the current event to a previously saved event, check if evt.target matches too.   This avoids false matches in the case of dijit/form/Button, where a click event on a <span> programatically triggers a click event on another node (an <input type=button>).   Fixes #15097 !strict.

Also rolls back [29994] which is no longer needed.
Support returning a dojo/promise/Promise or dojo/Deferred from a test fixture.   Before, you could only return a doh.Deferred or a dojo/_base/Deferred.    Besides the function name changes, I had to stop DOH from trying to modify the returned value by calling errback().

Update doh.Deferred to support the basic dojo/promise/Promise API methods: then(), always(), otherwise(), resolve(),  reject(). isFulfilled(), isResolved(), isRejected().   It still supports the old method names too, but they should be removed for 2.0.

Update dojo/_base/Deferred to have working isFulfilled(), isResolved(), isRejected() methods; previously (new dojoBaseDeferred()).promise.isFulfilled() was defined but threw an exception, which is sort-of false advertising.   Originally I needed this in the DOH code, but ended up not using it, so this change is optional.

Also updated a few modules to return a Promise rather than a Deferred.    A dojo/_base/Deferred.promise seems to be backwards compatible with the dojo/_base/Deferred, having addCallback() etc. methods.   Except of course that it doesn't have callback() and errback(), but users shouldn't be calling those anyway.   Again, originally I needed this in the DOH code, but ended up not using it, so this change is optional.

This check possibly fixes some tests that were already assuming a test fixture could return a dojo/Deferred.

For 2.0 maybe we should restrict the value returned from a test fixture to a Promise, rather than a Deferred.   Right now DOH looks for a promise attribute (available in dojo/Deferred and dojo/_base/Deferred, but not doh.Deferred), and uses it if available.

Fixes #16388 !strict.
Make sure that domReady(), when used as a function rather than a plugin, executes registered callbacks sequentially.    This is how ready() is supposed to work, so it makes sense for domReady() to follow suit.   

Plus, it's needed to make ready() work as advertised, since ready() calls domReady() internally.  Note that it's still dodgy that there are two queues, one in dojo/ready and one in dojo/domReady.   However, since dojo/ready is essentially deprecated, that's probably not worth fixing.

This fix is mainly a recursive guard, i.e. if f1() calls domReady(f2), f2() will be delayed until f1() completes.   However, it also addresses a concurrency issue:

In Editor_mouse.html on chrome I noticed that DOH started running the tests while test_Editor.s dojo.ready() callback was still executing.   It was mainly because the ready(999, ...) call from DOH occurred while the test_Editor.html dojo.ready() callback was running.   Normally browsers don't run multiple threads but I guess this is an exception since DOH and test_Editor.html are in different frames.

Also added a try/catch around each domReady() callback so that a failure in one callback won't affect other code, and won't get the guard variable stuck.

Fixes #16389, refs #16386 !strict.
Refactor robot so initRobot() is implemented as an asynchronous test fixture, rather than using monkey patching code that doesn't work well, having two places calling doh._run() in a race condition.   This design also makes better code separation between vanilla DOH and robot.

I plan to do the same for startRobot() in the next check in.

Also fixes priority of ready() call inside DOH.   The default priority is 1000, so we need to be higher than that, so that DOH doesn't execute until the iframe's dojo.ready() call has finished executing.

Fixes #16386 !strict.
Refs #15880, #14530.  Updated th/colors.js
Don't make copy of event object.   It appears to be unnecessary, and it triggers an iOS6 bug with properties in the event object being marked as non-enumerable.   Refs #16108, #16090 !strict.
Refactor robot so startRobot() is implemented as an asynchronous test fixture, rather than monkey patching doh.run().  This design makes better code separation between vanilla DOH and robot.

Refs #16386 !strict.
fix spelling and a few lint errors, refs #13036 !strict
Fixes #16411.  IE only needed a workaround for rounding [0.5,0.95) instead [0.5,1.0).  Added automated tests. !strict
Fixes #12342.  Refactor destroy and empty to work with IE9/10 and avoid multi-doc exceptions.  Backported attr_reconnect test to 1.7 to work with IE10.
Improve dom.setSelectable impl w/ feature detection and test page on trunk; refs #15990 !strict
merge upstream/master
Remove keydown --> keypress code no longer needed for opera 12, fixes #16371 on trunk !strict.   Also, dojo/on was depending on things like has("android") without listing dojo/sniff as a dependency, so fixing that too.   Plus, some spelling errors.
Fix acme bug with attribute selectors in IE10 quirks mode.   Although IE10 is working now, there's still a lot of has("ie") browser sniffing in acme.js that would be nice to get rid of, because it's probably doing stuff that IE10 doesn't need.

Restored the quirks mode query tests removed in [30019].   This essentially makes two copies of query.html; the alternative is to use dijit/tests/_loadTest.js, but that's in dijit rather than core.   Also, not running the quirks mode tests from  the test runner (i.e. from dojo/tests/query.js) due to the IE9+ problem where the iframe is in quirks mode but the parent is standards mode.

Fixes #16418 on trunk !strict.
If a module uses has("ie") etc., it needs to require() "dojo/sniff".    "dojo/has" isn't sufficient.   Refs #14321 !strict.
Disable test for attribute case sensitivity in quirks mode, since it's browser dependent and we don't want to bother "fixing" it, whatever that would mean.   Avoids test failure on FF.  Refs #8775, #14874 on trunk.
minimal fix to avoid mixed content warning on IE8, fixes #16429 on trunk !strict
fixed typo; fixes #16220; !strict
Workaround IE10's bizarre JIT bug, fixes #16425 !strict