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

Fixes #2533186
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.
[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 branch 'dev-master' into dev-3.x
Removed short term workarounds added for out of order attribute
handling just before 3.10.0 release, and put proper fix in place,
along with tests. This commit goes along with the commit to add
all attributes in one shot (see commit: 002a4aa5b39c01).

Testing (with yogi test --no-cli):

With 3.10.1 all newly added tests fail.
With this commit **all** library tests, including the new ones, pass
Changed deprecation notices to have red text for Issue #677
End of file newline
API Docs for add all ATTRS at once change
Added HISTORY.md for 'add all ATTRS at once' change
Move Color out of DOM.
Remove color.js from DOM.
Build DOM and Color.
Update toArray and RegExp to ensure an alpha channel at last position for toArray. toArray converts HEX3 to a standard 6 char hex.
Update test to check for alpha values from toArray
Update to unicode FFFE noncharacter code point for alpha placeholder in HEX values.
Update to unicode FFFE noncharacter code point for alpha placeholder in HEX values.
Build Color.
Merge branch 'dev-3.x' into base-remove-filterattrs
Added a cleanup method to scrollview-base unit test suites