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.

git-svn-id: http://svn.dojotoolkit.org/src/util/trunk@30060 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit 1319e6fb7c4514f61625c78fa58032e62a86a479)

Conflicts:
	doh/robot.js
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.

git-svn-id: http://svn.dojotoolkit.org/src/util/trunk@30074 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit f36cea6a49cbeaa7f6c4274339d1d2fb3470d4e1)

Conflicts:
	doh/robot.js
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.

git-svn-id: http://svn.dojotoolkit.org/src/util/trunk@30054 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit e6b89edae51f981719dbb420c0194318e2d0989e)
IE sporadically fires the timer even though we cleared it; seems to be related to the killRobot() at the end.    Refs #16388 !strict.    (There was similar code there originally which I removed as part of this ticket, but turns out it needs to be there.)

git-svn-id: http://svn.dojotoolkit.org/src/util/trunk@30089 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit 9f297ed3629e808820a292b33e9b20184ade7f64)
avoid spurious timeouts starting robot, refs #16386 !strict.

git-svn-id: http://svn.dojotoolkit.org/src/util/trunk@31072 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit 15e6c812122d35cbf49db93a5e79a81f8758d206)
Workaround robot errors in FF23+. Still need to figure out how to deal with zoom level. Refs #17442.

(cherry picked from commit 23abc082d571cecce77d3957c405fd5399622b81)
(cherry picked from commit b5c1bd5dfccfc0ed6d7b5b75b8be0cb35faefc38)
Signed robot applet with a "Dojo Foundation" public key to make Java 7u40 happy. Fix accidental nondeterminism when testing on slower machines. Refs #17442.

(cherry picked from commit 9e1dc62201b7cd06f1c052bae663882003cd3957)
(cherry picked from commit e6490e5ad503b97e79992bbad72f9b3953430b65)