Rollback [30599] and part of [30598].   They break code like dojox/mvc that dynamically adds setters to an instance, and also have a problem where defining a custom getter disables the code that automatically maps widget properties to DOMNode attributes (failing in dojox/mvc/Element.js for value property).   As in 1.8, the dynamically added setters won't be automatically called on widget creation unless the property is specified as a parameter to the widget constructor.  Refs #16693 and fixes #16738 !strict.

Also rolling back workaround code from [30639], refs #16737.

For 2.0 I'll probably have an API to add properties (with getters or setters) to an instance, and either remove or rearchitect how properties are automatically mapped to DOMNode attributes.