Improve focusin detection support

This change prevents unintentional scrolling and unfocusing of
whatever element was in focus before the feature detect in browsers
that need to do the long feature detect.

Adds test case.

Refs #17599

(cherry picked from commit 2536e5cd0935cc7356d584bab6ac2c73d3ad6164)

Conflicts:
	tests/on/on.js
Updating metadata for 1.9.2
Updating source version to 1.9.3-pre
improve i18n preload to take advantage of partially flattened locales, fixes #17155

(cherry picked from commit 341e41f1797739449d883e8951cda54bde53417e)
Position test element so it is actually fixed to viewport

Fixes #17626

(cherry picked from commit 65e989efbcda628e72c9616faf11d480aacebf2f)
 Squashed commit of the following:

commit 3c9c52c95fdf1fcbb796f3d972a28d0a421b8fb2
Author: dylans <dylan@dojotoolkit.org>
Date:   Tue Dec 31 15:23:04 2013 -0700

    refs #17651, make router.destroy fail safely if router.startup has not been called

(cherry picked from commit 36a2a4e94c3dc9c758749dae01fd7f6b089e9e5a)
Always return QueryResults from map and filter (1.9 backport)

Fixes #17681

(cherry picked from commit bdd52aceb1319e919aa8a5157156c36170bcc098)
Refs #16903.  Added Indonesian translation from IBM

Added nls/id/ files and updated  nls locale boolean lists to include id.
Same level of translations as the ones provided for 1.9 in March 2013.
Do not execute dojo/on until DOM is ready

This ensures that the focusin/out feature detection operates
properly even when people do not follow best practices and put
their code in the <head> instead of before </body>.

Refs #17599.

(cherry picked from commit 08187b88273f09326e5ebc8ea03eecd592e7eaca)
Fix emit events on 'window' and 'document' objects
Revert "Do not execute dojo/on until DOM is ready"

This reverts commit 31aab4cc1bb93592d1cb6a3c4e34f612f36d525a.
fix regression introduced by #17155
Just use onfocusin as a detection test for focusin support

Due to various restrictions on what dojo/on can depend on,
and a desire to resolve this issue so that a release can be issued,
simply check for a matching event key on the has-test element.
This stops focusin/focusout from being used in WebKit and Blink
in lieu of event capturing, which is not ideal, but is not any
worse than what was happening before.

Refs #17599.

(cherry picked from commit 81e1c7d6b52e2f42a3bbc8259f875bd83aaa8541)
Add missing host-node and host-rhino rules to has.js

Fixes #17741.

(cherry picked from commit ce4704766da86485459d9b16514fe7d2e48a6bda)
Updating metadata for 1.9.3
Updating source version to 1.9.4-pre
Use has.add for config-useDeferredInstrumentation

This ensures that a default build works the same as an unbuilt
version of Dojo, while still allowing the configuration value
to be fixed during a build.

Fixes #17753.

(cherry picked from commit fdcc15e86445ea8b893ef65d29b860ef12a2abb3)
Update dojo/window.scrollIntoView to avoid iOS body scroll reset, fixes #17740

(cherry picked from commit 87a492b78c9738ae0d0e41fe81230b151803e819)
Fix #16296 console.debug(NaN) produces error in IE9

Properly convert arguments to an Array when shimming a console function.

(cherry picked from commit 97861d95302c4e4e08de697dc563f9a0786e1d8d)
Only set idProperty if identifier provided, fixes #17557

(cherry picked from commit 5c86aadf89e576075dfb27898a7897112751edad)