Restore form attributes after successful upload in io-upload-iframe

Fixes #2533186
Merge branch 'dev-master' into dev-3.x
Attempt to clean up lang xframe tests, to avoid intermittent Yeti w/IE issues

When running the cross frame lang tests on IE, under Yeti, that too,
in a CI context (more load, running all tests etc.) we intermittently see
failures for these tests.

I haven't been able to repro them manually, either running them manually,
or through Yeti locally.

My gut is that we're trying to do stuff with the iframe when it's not
fully ready. In my old life, I remember hitting scenarios where even
though onload fired in the iframe, and the parent could get to
contentWindow, it wouldn't be completely robust when accesing contentWindow
properties.

The fix aims to revert responsibilities. Have the frame call the parent
when ready, as opposed to the parent check something on the frame.

In addition to the attempted fix the commit also does some cleanup:

1). It breaks out the xframe tests into a separate suite, which is not
loaded at all in nodejs (instead of ignoring the whole set of tests
individually)

2). It uses YUITest's async:init support to set up the iframe, so that
everything is encapsulated in the lang-xframe-test.js file, and we
don't need to repeat stuff across the various html file flavors.

NOTE: I didn't find any docs for the async:init stuff in the landing guide,
so had to look through the code - but it seems to be consciously/formally
supported.
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x
add dual listener when on a touch-enabled browser
build event-touch
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x
Merge branch 'dev-3.x' into dual-listener
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x
[WIP] First pass to add all attrs in one shot, as opposed to filtering by class.

We needed to add a hook for Widget, which for it's HTML_PARSER needs srcNode, contentBox
set up as attributes, before the rest of the attributes are added, since it merges
information from the markup, into the userConfigs (since they're logically equivalent),
and uses get("srcNode") to figure out what to use for the srcNode to parse.

This is a bit of an edge case.

Not sure if this will be the final hook for Widget, and potentially similar edge cases,
hence the "first pass".

Performance
-----------

A slight performance gain at the Core level (we weren't expecting anything substantial,
since the basic looping/isolation costs still remain):

Prior Commit (Chrome 21/MacOS):

BaseCore x 140,880 ops/sec ±1.11% (91 runs sampled)
MyBaseCore x 134,122 ops/sec ±1.54% (93 runs sampled)

This Commit (Chrome 21/MacOS):

BaseCore x 153,260 ops/sec ±1.89% (94 runs sampled)
MyBaseCore x 152,053 ops/sec ±1.41% (91 runs sampled)

Testing
-------

All current tests pass:
✔ [Total]: Passed: 10895 Failed: 0 Total: 10992 (ignored 97)

Will add a test for the actual use case this should fix (overriding setters,
which refer to subclass attrs).
Added tests for the subclass override attrs ref issue, which the
filterAttrCfg removal is supposed to fix.

Confirmed that it fails before the fix, and passes after it.
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x