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)
(cherry picked from commit 573c6c9a52a737e0fa27d7419500afa23345752d)

Conflicts:
	doh/runner.js
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)
(cherry picked from commit 1869299616666069d075e2c165116d0dca0c09e0)
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)
(cherry picked from commit b2ea6d9a81424d16405f0d7466a926906f8f3d64)
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)
(cherry picked from commit 7d601b8d38e2fd40e6afe07f81b9a83b92a645a3)

Conflicts:
	doh/robot/DOHRobot.jar
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)
(cherry picked from commit 99969c749fbabda02563f775dc7ca9a11e7a2cab)
Bring robot to 1.8 level.