Apply initialization parameters after createdCallback() returns.
This means that buildRendering() runs before any user the user defined parameters
are available.

This change is necessary to be forward compatible with browsers that implement
document.register() natively, because in that case programmatic creation (w/out
the syntactic sugar) will be:

var node = document.createElement("dui-slider");
node.max = 10;

Other changes:

- Removed runAfterRender() helper.
- Added preCreate() lifecycle method that executes before buildRendering().
- Fixed a few widgets that were depending on constructor() getting called;
  constructor() doesn't get called anymore with custom elements.
- Removed widgetId attribute setting on nodes.

Open issues:

- _Invalidating is presumably emitting unwanted events for changes that are due to
  initialization parameters; it should only send events for changes after this._started.
- Specifying event handlers declaratively (ex: <dui-button onfoo=...> for custom events
  likely isn't working.

Fixes #20.
automatically chain _introspect()
rename dui-starrating to dui-star-rating
All StarRating tests now support RTL mode.
Container can now accept children that are not widgets.
Remove TODO about supporting multiple documents.
For now, let's just support a single document.

Multiple document support is not trivial.   In addition to specifying a document when
creating a widget instance (previously done via new MyWidget({ownerDocument: ...}),
there's document.register() itself, which registers a custom tag with a certain
document.

In the future, multi-document support is needed, maybe it's a question of leveraging
AMD to load multiple instances of the register.js module, each with a different document
specified through module.config().doc.
remove inert code; params not available in buildRendering()
fix typo, use this[foo] to test type of foo property
fixes for latest widget system
improving test
in dui we have properties like _fooAttr not only _setFooAttr to exclude
add StoreMap test
In _introspect(), make sure "this" refers to the prototype.

Also changed _WidgetBase._introspect() to set properties directly in the prototype,
rather than on the constructor.
Make genSetter() map to DOMNode properties, not attributes.
Mapping to properties will work with DOMNodes that are widgets, and also with input.value.
It won't work for things like aria-disabled though, that must be set as attributes.
Support widgets in templates.

Part of this change is to make templated set the DOMNode property or the DOMNode
attribute, depending on which field you are trying to set.
Often setting either one is OK, but you need to set properties to
affect input.value and widgets, and you need to set attributes for
things like role, that have no associated property.