First pass at order of operations issue hit by AlloyUI after 'add all
ATTRS at once' fix.

The issue was that they had an attribute valueFn, which depended on
an extension's constructor having been called, before the attributes
were set up.

Changed the Base init code, to invoke all extension constructors before
the 'add all ATTRS' step.

As a result however, we had a number of older extensions, which were
created before we added initializer support for extensions, and were
doing all their initialization work in their constructors. If this
work involved accessing ATTRS, they would now fail.

Moving the initialization code to an initializer fixed all these use
cases, and all tests pass [except for an expected Base test which explicitly
tested the extension constructor order of operations].

However not sure we can require that from in-the-wild extensions.
Build for extension constructor order of operations change
Updated test to reflect new order of operations for extension constructors
Minimize looping to the extent possible, by holding onto intializer
references, while we're looping for constructors.
Build Base looping optimization, for constructors/initializers
Add ad-hoc attrs before adding all class ATTRS.

To account for class ATTRS which may reference the ad-hoc attrs. Although
this seems to indicate a design smell, I don't think it hurts, since
ad-hoc attrs, by definition, won't have configuration methods (setter, getter etc),
so there shouldn't be any order of operation issues adding them before ATTRS.

Also updated APIDocs and HISTORY.md to cover the 'Add all ATTRS at once'
changes a little better.
Added tests for ad-hoc access, order of operations
Build for ad-hoc attrs order of operation change
Merge upstream/dev-3x, fixed widget-stdmod min file conflicts by rebuilding
Added HISTORY entry for widget, just as an FYI. No real user impact.
Merge branch 'test-extension-order-fix' into dev-3.x
Added HISTORY.md for constructor to initializer code refactor.

This has no end user impact, but has been added to highlight the
change for other extension developers.
Added Extension constructor order of operations change to landing page
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x
Merge remote-tracking branch 'upstream/dev-3.x' into dev-3.x