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
#889 Need to expose methods that calculate widget alignment coordinates
#889 Build files