WIP.  It turns out that Widgets MUST be classes so that widgets can be used as components in other wisgets.  I've started a rewrite to take this approach motivated by button used as part of modal.  There are also changes to DWidget.render to simplify and generalize widget processing.